Naar inhoud springen

Gratis Nano ID Generator - Veilige URL-Vriendelijke Unieke ID's Online

Genereer direct veilige Nano ID's! Gratis online tool maakt compacte, URL-veilige unieke identificatoren 42% korter dan UUID. Perfect voor databases, API's, tokens & systemen.

De lengte van de gegenereerde Nano ID (1-100 tekens)

Selecteer de tekenset voor uw Nano ID

Gegenereerde Nano ID

Voer een waarde in om resultaten te zien

Visualisatie

Laadcalculator...
📚

Documentatie

Een Nano ID-generator maakt een korte, willekeurige tekenreeks die Nano ID wordt genoemd. Nano ID's werken als unieke identificatoren voor zaken zoals databasegegevens, URL's en API-tokens, en het is uiterst onwaarschijnlijk dat twee gegenereerde ID's ooit overeenkomen.

Wat is een Nano ID?

Een Nano ID is een willekeurig gegenereerde tekenreeks om iets te labelen, zodat het van alle andere zaken kan worden onderscheiden. Softwareontwikkelaar Andrey Sitnik bedacht het formaat in 2017 als een kleiner alternatief voor de UUID (Universally Unique Identifier), een identificator van 36 tekens die veel in de informatica wordt gebruikt. Een standaard-Nano ID is 21 tekens lang, tegenover 36 tekens voor een UUID, een verkorting van ongeveer 42%.

Een Nano ID genereren met deze tool

De generator op deze pagina bouwt een Nano ID op basis van twee instellingen.

  1. Lengte: een geheel getal van 1 tot en met 100. De standaardwaarde is 21.
  2. Tekenset: de groep tekens waaruit de ID wordt opgebouwd. De standaardinstelling is alfanumeriek.

Voer een lengte in, kies een tekenset en druk vervolgens op "Genereren" om een ID te maken. Druk op "Kopiëren" om deze te kopiëren of op "Resetten" om terug te keren naar een lengte van 21 en de alfanumerieke tekenset. Telkens wanneer de lengte of tekenset verandert, verschijnt automatisch een nieuwe ID. Onder de knoppen geeft de tool elk teken van de ID weer als een gekleurd blok: blauw voor een hoofdletter, groen voor een kleine letter, oranje voor een cijfer en grijs voor interpunctie.

Als de lengte geen geheel getal tussen 1 en 100 is, toont de tool het bericht "Lengte moet een geheel getal tussen 1 en 100 zijn" en wordt er geen ID gemaakt.

Beschikbare tekensets

De tool biedt zeven vaste tekensets. Een aangepast, door de gebruiker ingevoerd alfabet wordt niet ondersteund. De set "Met symbolen" voegt deze 26 leestekens toe aan de alfanumerieke tekens: ! @ # $ % ^ & * ( ) _ + - = [ ] { } | ; : , . < > ?.

TekensetGebruikte tekensAlfabetgrootte
Alfanumeriek (standaard)A-Z, a-z, 0–962
URL-veiligA-Z, a-z, 0-9, -, _64
Numeriek0–910
AlfabetischA-Z, a-z52
Kleine lettersa-z26
HoofdlettersA-Z26
Met symbolenA-Z, a-z, 0–9 en 26 leestekens88

De alfanumerieke set is standaard geselecteerd. Daarin ontbreken het koppelteken en het onderstrepingsteken uit de URL-veilige set, hoewel letters en cijfers op zichzelf al veilig rechtstreeks in een URL kunnen worden geplaatst.

Nano ID-formule

Een Nano ID wordt opgebouwd door met een cryptografisch veilige generator voor willekeurige getallen één voor één een vast aantal tekens willekeurig uit een alfabet te kiezen. Zo'n generator is ontworpen om te voorkomen dat de uitvoer vooraf kan worden voorspeld.

1id = random(alphabet, size)
2

Met de standaardinstellingen heeft alphabet 62 tekens en is size gelijk aan 21.

Uitgewerkt voorbeeld

Bij gebruik van het standaardalfabet met alfanumerieke tekens en een lengte van 21 is één mogelijk gegenereerde ID:

1K7pQ2mZxT9vY4nR8jH3wL
2

Elk teken wordt onafhankelijk gekozen uit de 62 letters en cijfers, dus twee keer achter elkaar genereren levert vrijwel nooit dezelfde tekenreeks op.

Botsingskans berekenen

Omdat een Nano ID willekeurig wordt gekozen, is het mogelijk, hoewel zeer onwaarschijnlijk, dat twee gegenereerde ID's overeenkomen. Dit heet een botsing. De kans op ten minste één botsing na het genereren van k ID's volgt dezelfde wiskunde als het "verjaardagsprobleem":

1P(collision) ≈ 1 - e^(-k² / (2n))
2

Hier is n het aantal mogelijke ID's: de alfabetgrootte verheven tot de macht van de ID-lengte, oftewel n = alphabet_size^length.

Uitgewerkt voorbeeld

Voor de standaardinstelling, een alfabet van 62 tekens en een lengte van 21 tekens:

1n = 62^21 ≈ 4.4 × 10^37 possible IDs
2

Als de formule wordt opgelost voor een botsingskans van 1%, volgt:

1k ≈ 9.4 × 10^17 IDs
2

Dat betekent dat er ongeveer 940 biljard ID's moeten worden gegenereerd voordat er zelfs maar een kans van 1% bestaat dat twee ervan overeenkomen. Bij één miljoen gegenereerde ID's per seconde zou het ongeveer 29.700 jaar duren om dat aantal te bereiken.

Als het URL-veilige alfabet van 64 tekens wordt gebruikt, stijgt het aantal licht tot ongeveer 1,3 × 10^18 ID's voor hetzelfde risico van 1%, omdat het grotere alfabet meer mogelijke ID's biedt om uit te kiezen.

Nano ID vergeleken met andere identificatoren

TypeLengteOpmerkingen
Nano ID21 tekens, aanpasbaarWillekeurig, compact, niet op tijd sorteerbaar
UUID36 tekensStandaardindeling, breed ondersteund, bevat koppeltekens
ULID26 tekensSorteerbaar op aanmaaktijd
KSUID27 tekensSorteerbaar op aanmaaktijd, bevat een tijdstempel
Automatisch oplopend geheel getalVerschiltEenvoudig en opeenvolgend, maar voorspelbaar en moeilijk af te stemmen tussen afzonderlijke databases

Veelgestelde vragen

Wat zijn de standaardlengte en tekenset van een Nano ID?

De standaardwaarde is 21 tekens uit de alfanumerieke tekenset: A-Z, a-z, 0-9, in totaal 62 tekens.

Ondersteunt deze tool een aangepast alfabet?

Nee. De tool biedt zeven vaste tekensets: alfanumeriek, URL-veilig, numeriek, alfabetisch, kleine letters, hoofdletters en "Met symbolen".

Waarin verschilt een Nano ID van een UUID?

Een Nano ID is korter. De standaardlengte is 21 tekens, tegenover 36 tekens voor een UUID, dus ongeveer 42% korter. Beide worden willekeurig gegenereerd en zijn niet opeenvolgend.

Kan een Nano ID worden gesorteerd op basis van de aanmaaktijd?

Nee. Nano ID's zijn volledig willekeurig en bevatten dus geen informatie over het moment waarop ze zijn gegenereerd. Indelingen zoals ULID of KSUID zijn juist ontworpen om op tijd te kunnen worden gesorteerd.

Is een Nano ID veilig als primaire sleutel in een database?

Ja. De ID moet worden opgeslagen in een tekst- of tekenreeks­kolom in plaats van als getal, met een unieke index voor snelle zoekopdrachten.

Hoeveel mogelijke Nano ID's zijn er?

Dat hangt af van de gekozen lengte en tekenset. Met het standaardalfabet van 62 tekens en een lengte van 21 zijn er 62^21, oftewel ongeveer 4,4 × 10^37, mogelijke ID's.

Referenties

  1. Sitnik, Andrey. "Nano ID." GitHub, https://github.com/ai/nanoid.
  2. "Universally unique identifier." Wikipedia, Wikimedia Foundation, https://en.wikipedia.org/wiki/Universally_unique_identifier.
  3. "ULID Spec." GitHub, https://github.com/ulid/spec.