ULID- og Nano ID-generator
Generer ULID-er (med monoton modus) eller Nano ID-er med eget alfabet og lengde, mange om gangen, dekod tidsstempelet i en ULID og sjekk kollisjonsrisikoen.
Kollisjonssannsynlighet
- Størrelse på alfabetet
- —
- Entropi per ID
- —
- Mulige ID-er
- —
- ID-er for 1 % sjanse for duplikat
- —
- Tid til denne risikoen på 1 % nås
- —
Dekod en ULID
- Tidsstempel (UTC, ISO 8601)
- Lokal dato og klokkeslett
- Unix-tid (ms)
- Tilfeldig del (80 bit, hex)
Slik genererer du ULID-er eller Nano ID-er
- Under Type ID velger du ULID (sorterbar) eller Nano ID (kort).
- Sett Hvor mange (1 til 1 000). Ti ID-er genereres så snart siden lastes.
- For ULID-er lar du Monoton (strengt økende) stå avhuket, slik at ID-er som lages i samme millisekund, fortsatt sorteres i rekkefølge, og du kan huke av for Små bokstaver hvis systemet ditt foretrekker det.
- For Nano ID-er velger du et Alfabet (eller Egendefinert …, og skriver inn dine egne tegn) og en Lengde.
- Klikk Generer, og Kopier deretter listen, eller Last ned den som .txt-fil (én ID per linje).
Vil du lese datoen som er skjult i en ULID, limer du den inn under Dekod en ULID eller klikker Dekod den første ID-en. Verktøyet viser tidsstempelet i UTC (ISO 8601), i lokal tid, som Unix-millisekunder og den tilfeldige delen på 80 bit i hex.
Hva er en ULID?
En ULID (Universally Unique Lexicographically Sortable Identifier) er en identifikator på 128 bit, skrevet som 26 tegn i Crockford Base32, for eksempel 01ARZ3NDEKTSV4RRFFQ69G5FAV. De første 10 tegnene koder et tidsstempel på 48 bit i millisekunder (nok til år 10889), og de siste 16 tegnene er 80 tilfeldige bit. Crockford Base32 utelater I, L, O og U for å unngå forveksling, og dekodingen skiller ikke mellom store og små bokstaver.
Fordi tiden kommer først, sorteres ULID-er alfabetisk i rekkefølgen de ble laget. Det gjør dem gode som primærnøkler: nye rader legges til på slutten av en B-tre-indeks i stedet for å bli spredt som tilfeldige UUID-er, og du kan sortere på ID i stedet for på en egen datokolonne.
Monoton modus. Innenfor ett millisekund ville tilfeldige ULID-er sortert i tilfeldig rekkefølge. Med det monotone valget følger verktøyet ULID-spesifikasjonen: når flere ID-er lages i samme millisekund, beholder det tidsstempelet og legger til 1 i den forrige tilfeldige delen. Hvis klokken går bakover, beholder det det siste tidsstempelet, så rekken aldri synker.
Husk at en ULID avslører når den ble laget. Ikke bruk en der den opplysningen er sensitiv.
Hva er en Nano ID?
Nano ID er en kompakt tilfeldig identifikator. Standarden er 21 tegn fra et URL-sikkert alfabet på 64 tegn (A–Z a–z 0–9 _ -), som gir 126 tilfeldige bit, likt en UUID v4 (122 bit) med færre tegn. Du kan velge heksadesimalt, bare sifre, små bokstaver og sifre, alfanumerisk, et sett uten tegn som ligner hverandre (ikke 0/O, 1/l/I, 5/S …) til koder folk skal skrive inn, eller ditt eget alfabet på 2 til 256 tegn. Gjentatte tegn i et egendefinert alfabet fjernes, fordi de ville gjort noen tegn mer sannsynlige.
Hvert tegn trekkes med crypto.getRandomValues med forkastingsutvalg, så det finnes ingen modulo-skjevhet.
Kollisjonssannsynlighet
Panelet Kollisjonssannsynlighet bruker bursdagsgrensen. Med et alfabet av størrelse A og lengde L finnes det N = A^L mulige ID-er. Etter k ID-er er sjansen for minst ett duplikat omtrent 1 − e^(−k²/2N), så en risiko på 1 % nås etter k ≈ √(2N · ln(1/0,99)) ID-er. Skriv inn ID-er generert per time for å se hvor lang tid det ville ta. Med standardinnstillingene og 1 000 ID-er per time tar det omtrent 149 milliarder år å nå 1 % risiko. Med 8 heksadesimale tegn tar det bare omtrent 9 300 ID-er.
Ofte stilte spørsmål
ULID eller UUID?
Begge er på 128 bit. En ULID er kortere å skrive (26 tegn i stedet for 36) og sorteres etter tid. UUID versjon 7 tilbyr nå den samme tidsrekkefølgen i standard UUID-format, som databaser ofte lagrer innebygd. Velg UUID v7 hvis teknologistakken din støtter det, og ULID hvis du vil ha en kompakt, lesbar streng.
Er ULID-er og Nano ID-er sikre nok til tokens?
Nano ID-er med standardalfabetet og standardlengden har 126 tilfeldige bit fra en kryptografisk generator, noe som er nok til lenker som ikke kan gjettes. ULID-er har bare 80 tilfeldige bit, og i monoton modus skiller etterfølgende ID-er seg med én, så bruk ikke ULID-er som hemmeligheter.
Kan jeg gjøre en Nano ID kortere?
Ja, men kollisjonsrisikoen vokser svært raskt. Sjekk verdien ID-er for 1 % sjanse for duplikat for lengden og alfabetet ditt før du stoler på en kort ID.
Hvorfor avviser dekoderen ULID-en min?
En ULID må ha nøyaktig 26 tegn, bare bruke tegn fra Crockford Base32 og begynne med 0 til 7 (et større første tegn ville overskride 128 bit).
Blir ID-ene lagret eller sendt noe sted?
Nei. De genereres i nettleseren din og forsvinner når du forlater siden.
Relaterte verktøy
- UUID-generator Gratis UUID-generator for UUID versjon 4 og 7. Lag opptil 1 000 om gangen, med store bokstaver eller uten bindestreker, og kopier eller last ned som .txt.
- Passordgenerator Gratis passordgenerator som lager sterke tilfeldige passord på 4 til 128 tegn i nettleseren med sikker tilfeldighet. Ingenting lagres eller sendes.
- Unix-tidsstempel til dato Gjør Unix-tidsstempler i sekunder eller millisekunder om til lesbare datoer i lokal tid, UTC og ISO 8601, og gjør hvilken som helst dato om til epoch-tid igjen.