NanoID-generator

Generer NanoID-værdier online: Som standard 21 URL-sikre tegn, ca. 126 bit tilfældighed, med mulighed for tilpasset længde og alfabet.

Format
Genererede ID'er
Klar. Generer NanoID-værdier direkte i din browser.

Sådan er dette ID opbygget

Layout
Som standard 21 URL-sikre tegn bestående af A-Z, a-z, 0-9, understregning og bindestreg.
Entropi
Cirka 126 bit med standardalfabetet på 64 tegn og en længde på 21 tegn.
Tid
Intet tidsstempel; NanoID-værdier er uigennemskuelige (opaque), medmindre du lægger betydning ind i et tilpasset alfabet.
Kollisionsrisiko
Kollisionsrisikoen ændrer sig med længden og alfabetet. Standardindstillingen ligger i samme praktiske sikkerhedsområde som UUID v4.
Eksempel
ibWANBjvnsljBHEDJhVBO

Dine ID'er genereres lokalt med stærk tilfældighed i browseren. Intet sendes til BroBroGo.

Ofte stillede spørgsmål

Hvorfor bruge NanoID?

NanoID er kortere end en UUID, er URL-sikker som standard og har stadig en meget høj grad af tilfældighed, når du beholder standardlængden og -alfabetet.

Kan jeg ændre alfabetet?

Ja. Den dedikerede NanoID-side bevarer indstillingerne for længde og alfabet. Mindre alfabeter eller kortere længder øger kollisionsrisikoen.

Nano ID-generator – justerbare, URL-sikre, kollisionsresistente identifikatorer

Denne side genererer unikke identifikatorer i Nano ID-formatet. Du specificerer længde og det tilladte tegnsæt (alfabetet), og værktøjet producerer et eller flere ID'er, der er kompakte, URL-sikre og designet til at undgå sammenstød. Genereringen sker lokalt i browseren ved hjælp af crypto.getRandomValues – der sendes intet til nogen server.

Hvad gør denne side anderledes

I modsætning til UUID'er (der har en fast længde på 36 tegn med bindestreger) eller ULID (26 tegn) har Nano ID en standardlængde på 21 tegn – væsentligt kortere end UUID, samtidig med at den tilbyder sammenlignelig kollisionsmodstand. Både længden og alfabetet er fuldt justerbare:

  • Længde kan sættes mellem 2 og 36 tegn.
  • Alfabet er et redigerbart tekstfelt, der skal indeholde mindst 2 forskellige tegn.
  • Ændring af en af parametrene regenererer straks ID'erne.
  • Hvis alfabetet reduceres til et enkelt tegn, ryddes resultaterne, ID-tælleren viser 0, og knappen "Kopier alle" deaktiveres.
  • De genererede ID'er bruger som standard kun URL-sikre tegn – ingen tegn, der skal escapes i webadresser.

Denne kombination af justerbar længde og alfabet gør det muligt at tilpasse ID'erne til stort set enhver begrænsning i formatkrav, lagerplads eller overførselsomkostninger.

Længde, alfabet og parametre

Standardlængden på 21 tegn er et kompromis: med et alfabet på 64 URL-sikre tegn (A-Z, a-z, 0-9, samt _ og -) giver det omkring 2⁶⁴ ⋅ 21 ≈ 2¹²⁶ mulige kombinationer – nok til de fleste systemer, men en tredjedel kortere end UUID's 36 tegn.

Længden reguleres med en skyder eller et talinput, fra 2 (meget kort, høj risiko for kollision) til 36 (længere end UUID, men stadig uden bindestreger). Hvert enkelt ID oprettes ved at trække tilfældige bytes fra crypto.getRandomValues og mappe dem mod alfabetet. Da browserens tilfældighedskilde er kryptografisk sikker, er ID'erne praktisk talt uforudsigelige.

Alfabetet kan tilpasses frit. Du kan f.eks.:

  • Bruge kun cifre (0–9) for numeriske ID'er: 48291 (længde 5).
  • Undgå forvirrende tegn som 0 og O, 1 og l, I – skriv dit eget alfabet uden dem.
  • Tilføje specialtegn som + eller !, hvis de ikke skal bruges i URL'er.

Som standard er alfabetet: ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_-. Bemærk, at bindestreg og understregning er inkluderet – disse er URL-sikre og almindelige i Nano ID-implementeringer.

Tabel: Parametre og områder

Parameter Standard Område Bemærkning
Længde 21 2–36 Ændring regenererer ID'er
Alfabet URL-sikre Mindst 2 tegn Hvis kun 1 tegn: resultat ryddes
Antal ID'er - 1–100 Ændring regenererer ID'er
Format Nano ID Kun Nano ID Valgt via dropdown

Antallet af ID'er, der genereres samtidig, kan vælges mellem 1 og 100. Hvis du f.eks. har brug for 50 unikke ID'er til en batch-import, kan du generere dem alle på én gang og kopiere listen.

Kollisionsmodstand og matematikken bag

Nano ID's kollisionsmodstand afhænger af både længde og alfabetstørrelse. Jo større alfabetet er, og jo længere ID'et er, desto lavere er sandsynligheden for, at to ID'er er ens.

Sandsynligheden for en kollision kan tilnærmes med fødselsdagsangrebets klassiske formel:

P(k, N) ≈ 1 - e^(-k(k-1)/(2N))

hvor k er antallet af genererede ID'er, og N er antallet af mulige kombinationer. N beregnes som alfabetets længde^ID-længde.

Eksempler med standardindstillinger:

  • Alfabet: 64 tegn, længde: 21 → N ≈ 2¹²⁶.
  • Med 1 million ID'er er kollisionssandsynligheden mindre end 10⁻¹⁵ – stort set nul.

Hvis du reducerer længden til 8 tegn med samme alfabet, bliver N ≈ 2⁴⁸. Med 1000 ID'er er sandsynligheden for en kollision omkring 3·10⁻⁹. Det er stadig meget lavt, men afhænger af dit system; til primærnøgler i en lille database kan 8 tegn være tilstrækkeligt.

Reducerer du alfabetet til kun 10 cifre (0–9) og længde 4, er N = 10.000 – og allerede efter 100 ID'er er sandsynligheden for en kollision nær 1. Værktøjet advarer ikke direkte, men du kan selv vurdere risikoen ud fra tallene.

Edge cases: Alfabet med kun ét tegn – hvad sker der?

Alfabetet skal indeholde mindst 2 forskellige tegn. Hvis du sletter indholdet, så kun et enkelt tegn står tilbage (f.eks. a), eller indtaster to ens tegn (aa), sker der følgende:

  • Resultatlisten ryddes øjeblikkeligt.
  • ID-tælleren viser 0.
  • Knappen "Kopier alle" deaktiveres og kan ikke klikkes.
  • Statuslinjen viser: "Alfabet skal indeholde mindst 2 forskellige tegn."

Denne adfærd er bevidst: Hvis alfabetet kun har ét tegn, vil hvert ID uanset længde bestå af gentagelser af det samme tegn – f.eks. aaaaa ved længde 5. Det giver ingen unikke værdier, og det ville være vildledende at generere dem. Derfor ryddes resultaterne i stedet.

Når du retter alfabetet til et gyldigt sæt (mindst to forskellige tegn), genoptages genereringen automatisk, og knappen aktiveres igen.

Lokal generering og privatliv

Alle Nano ID'er genereres udelukkende i din browser. Der sendes ingen data til BroBroGo eller nogen anden server. Den underliggende kilde til tilfældighed er window.crypto.getRandomValues, en W3C-standard implementeret i alle moderne browsere. Dette sikrer:

  1. Ingen netværksaktivitet – du kan arbejde offline.
  2. Ingen logning – hverken dine indstillinger eller genererede ID'er forlader maskinen.
  3. Kryptografisk styrkegetRandomValues trækker fra operativsystemets egen entropikilde og er velegnet til sikkerhedsnøgler og tokens.

Det betyder, at du trygt kan bruge værktøjet til at generere API-nøgler, hemmelige tokens eller databaseprimærnøgler uden at bekymre dig om, at nogen på serveren får adgang til dem.

Sådan kopieres ID'er

Hvis du klikker på et enkelt ID, kopieres det til udklipsholderen. Der vises en kort statusmeddelelse: "Kopieret!" (eller tilsvarende). Knappen "Kopier alle" kopierer hele listen – hvert ID på en ny linje – og status skifter til "Kopieret alle!".

Når genereringen er færdig, vises status "Genereret." Når værktøjet er klar til næste opgave, står der "Klar.". Disse statusindikatorer gør det nemt at følge med, især når du justerer parametre.

FAQ – ofte stillede spørgsmål

Hvorfor er standardlængden 21 tegn?
Den er valgt som et kompromis: kortere end UUID (36 tegn), men med tilstrækkelig entropi (ca. 126 bit) til de fleste applikationer. Den er også den oprindelige Nano ID-standard, som bruges i mange open source-projekter.

Hvad sker der, hvis jeg bruger alfabetet "01" med længde 4?
Du får binære ID'er som 0101, 1100 osv. Der er kun 2⁴ = 16 mulige kombinationer. Det er fint til test, men risikoen for kollision er ekstremt høj, hvis du genererer mere end få ID'er.

Kan jeg bruge danske bogstaver som æ, ø, å i alfabetet?
Ja, men vær opmærksom på, at de ikke er URL-sikre (de skal procent-encodes som %C3%A6 osv.). Hvis dine ID'er skal bruges i webadresser, bør du holde dig til det medfølgende standardalfabet.

Hvor mange ID'er kan jeg generere ad gangen?
Mellem 1 og 100. Ønsker du flere, kan du generere flere batches.

Er der en garanti for, at ID'erne er unikke?
Nej, der gives ingen garanti. Værktøjet trækker tilfældige værdier, og sammenstød er teoretisk mulige. Men med tilstrækkelig længde og et stort alfabet er sandsynligheden praktisk talt nul. Du kan altid kontrollere ved at generere en batch og tjekke for dubletter manuelt.

Kan jeg bruge dette til at generere hemmelige tokens til autentifikation?
Ja, fordi entropikilden er kryptografisk sikker. Men længden bør være mindst 20–25 tegn for at modstå brute force. Husk, at tokens også skal opbevares sikkert på serveren.