ULID-generatoren

Generer ULID-er (universelt unike leksikografisk sorterbare identifikatorer). 26 tegn, URL-sikker, tidssorterbar og kompatibel med UUID-er.

Generer ULID

Lag sorterbare unike identifikatorer

Genererte ULID-er

Klikk på "Generer ULIDs" for å lage unike identifikatorer

Ofte stilte spørsmål

What is a ULID?

En identifikator på 26 tegn som kombinerer et 48-bits tidsstempel i millisekunder med 80 bits tilfeldighet, slik at ID-ene sorteres etter opprettelsestidspunkt.

Hvorfor velge ULID fremfor UUID?

ULID-er sorteres leksikografisk etter tid, er kortere og bruker URL-sikker Crockford base32 uten bindestreker å forholde seg til.

Can I trust the ordering?

På tvers av ulike millisekunder, ja. Innen samme millisekund er ikke rekkefølgen mellom to ULID-er garantert.

Fungerer ULID-er der UUID-er brukes?

De passer inn i de fleste tekstkolonner og API-er, og konvertering mellom ULID og UUID er enkel når begge formater må eksistere side om side.

Hvor lang er en ULID, og hvilke tegn bruker den?

Hver ULID er nøyaktig 26 tegn og bruker Crockford Base32, som består av sifferne 0-9 og bokstavene A-Z unntatt I, L, O og U. Denne faste lengden gjør størrelsen på databasekolonner forutsigbar og unngår tvetydige tegn når ID-er leses høyt eller skrives inn manuelt.

Er ULID-er trygge å bruke i URL-er og filnavn?

Ja. ULID-er inneholder bare store bokstaver og siffer, uten bindestreker, skråstreker eller symboler, slik at de fungerer fint i URL-er, stisegmenter og filnavn uten prosentkoding. Lengden på 26 tegn passer også fint inn i rutemønstre og logglinjer.

Hvor mange ULID-er kan genereres i samme millisekund?

Den tilfeldige delen på 80 bitt gir omtrent 2^80 verdier per millisekund, noe som gjør kollisjoner praktisk talt umulige. Hvis applikasjonen din oppretter flere ID-er innen ett millisekund, bør du bruke monoton modus, som øker den tilfeldige delen med én slik at sorteringsrekkefølgen beholdes.

Hvordan leser jeg tidsstempelet fra en ULID?

De første 10 tegnene koder Unix-tidsstempelet i millisekunder, mens de resterende 16 tegnene er tilfeldige. Dekod disse 10 tegnene fra Crockford Base32 til et tall, og konverter det deretter med et vilkårlig Unix-tidsstempel-verktøy for å få det nøyaktige opprettelsestidspunktet.

ULID-struktur

Hver ULID består av to deler: tidsstempel og tilfeldighet

TIDSSTEMPEL (10 tegn) TILFELDIGHET (16 tegn)

01ARZ3NDEKTSV4RRFFQ69G5FAV

Eksempel: Denne ULID-en ble generert på et bestemt millisekund og inkluderer 80 biter tilfeldighet

Tidsstempel (48 biter)

Millisekunder siden Unix-epoken (1970-01-01). Gir tidsordnet sortering og varer til 10889 e.Kr.

Tilfeldighet (80 biter)

Kryptografisk sikker tilfeldig verdi. Gir 1,21 kvintillioner unike ID-er per millisekund.

Tekniske spesifikasjoner

ULID er designet for å være sorterbart, URL-sikkert og kompatibelt med UUID-er

Egenskaper

  • Kryptografisk sikker tilfeldighet
  • Kun klient-side generering
  • Leksikografisk sorterbar
  • Ingen spesialtegn (URL-sikker)

Spesifikasjoner

  • 26 tegn (128 biter)
  • Crockfords Base32-koding
  • 48-bits tidsstempel + 80-bits tilfeldighet
  • 1,21 millioner ID-er per millisekund

Referanser og ressurser