ULID- och Nano ID-generator
Generera ULID:er (även monotona) eller Nano ID:n med eget alfabet och egen längd i bulk, avkoda en ULID:s tidsstämpel och se kollisionsrisken.
Kollisionssannolikhet
- Alfabetets storlek
- —
- Entropi per id
- —
- Möjliga id:n
- —
- Antal id:n för 1 % risk för en dubblett
- —
- Tid tills risken når 1 %
- —
Avkoda en ULID
- Tidsstämpel (UTC, ISO 8601)
- Lokalt datum och tid
- Unix-tid (ms)
- Slumpdel (80 bitar, hex)
Så genererar du ULID:er eller Nano ID:n
- Under Typ av id väljer du ULID (sorterbart) eller Nano ID (kort).
- Ange Antal (1 till 1 000). Tio id:n genereras så fort sidan har laddats.
- För ULID:er låter du Monotont (strikt ökande) vara ikryssad så att id:n som skapas under samma millisekund ändå sorteras i rätt ordning. Kryssa i Gemener om ditt system föredrar det.
- För Nano ID:n väljer du ett Alfabet (eller Eget… och skriver in dina egna tecken) och en Längd.
- Klicka på Generera och sedan på Kopiera för listan eller Ladda ner .txt (ett id per rad).
Vill du läsa datumet som döljer sig i en ULID klistrar du in den under Avkoda en ULID eller klickar på Avkoda det första id:t. Verktyget visar tidsstämpeln i UTC (ISO 8601), i din lokala tid och som Unix-millisekunder, samt slumpdelen på 80 bitar i hex.
Vad är en ULID?
En ULID (Universally Unique Lexicographically Sortable Identifier) är en identifierare på 128 bitar som skrivs som 26 tecken i Crockford Base32, till exempel 01ARZ3NDEKTSV4RRFFQ69G5FAV. De första 10 tecknen kodar en tidsstämpel på 48 bitar i millisekunder (räcker till år 10889), och de sista 16 tecknen är 80 slumpmässiga bitar. Crockford Base32 utesluter I, L, O och U för att undvika förväxlingar, och avkodningen skiljer inte på versaler och gemener.
Eftersom tiden kommer först sorteras ULID:er alfabetiskt i den ordning de skapades. Det gör dem till bra primärnycklar: nya rader läggs till i slutet av ett B-trädindex i stället för att spridas ut som slumpmässiga UUID:n, och du kan sortera på id i stället för på en separat datumkolumn.
Monotont läge. Inom en och samma millisekund skulle slumpmässiga ULID:er sorteras i slumpmässig ordning. Med det monotona alternativet följer verktyget ULID-specifikationen: när flera id:n skapas under samma millisekund behålls tidsstämpeln och föregående slumpdel ökas med 1. Om klockan går bakåt behålls den senaste tidsstämpeln, så att sekvensen aldrig minskar.
Tänk på att en ULID avslöjar när den skapades. Använd den inte där den informationen är känslig.
Vad är ett Nano ID?
Nano ID är en kompakt slumpmässig identifierare. Standard är 21 tecken ur ett URL-säkert alfabet med 64 tecken (A–Z a–z 0–9 _ -), vilket ger 126 slumpmässiga bitar, ungefär som ett UUID v4 (122 bitar) men med färre tecken. Du kan välja hexadecimalt, bara siffror, gemener och siffror, alfanumeriskt, en uppsättning utan förväxlingsbara tecken (ingen 0/O, 1/l/I, 5/S …) för koder som människor ska skriva in, eller ett eget alfabet med 2 till 256 tecken. Dubbletter i ett eget alfabet tas bort, eftersom de skulle göra vissa tecken mer sannolika.
Varje tecken dras med crypto.getRandomValues och förkastningsurval (rejection sampling), så det finns ingen modulo-snedvridning.
Kollisionssannolikhet
Panelen Kollisionssannolikhet tillämpar födelsedagsgränsen. Med ett alfabet av storlek A och längden L finns N = A^L möjliga id:n. Efter k id:n är sannolikheten för minst en dubblett ungefär 1 − e^(−k²/2N), så en risk på 1 % nås efter k ≈ √(2N · ln(1/0,99)) id:n. Ange Genererade id:n per timme för att se hur lång tid det skulle ta. Med standardinställningarna och 1 000 id:n per timme tar det cirka 149 miljarder år att nå 1 % risk. Med 8 hexadecimala tecken räcker det med cirka 9 300 id:n.
Vanliga frågor
ULID eller UUID?
Båda är 128 bitar. En ULID är kortare att skriva (26 tecken i stället för 36) och sorteras efter tid. UUID version 7 erbjuder numera samma tidsordning i det vanliga UUID-formatet, som databaser ofta lagrar inbyggt. Välj UUID v7 om din teknikstack stöder det och ULID om du vill ha en kompakt, läsbar sträng.
Är ULID:er och Nano ID:n tillräckligt säkra som token?
Nano ID:n med standardalfabet och standardlängd har 126 slumpmässiga bitar från en kryptografisk generator, vilket räcker för länkar som inte går att gissa. ULID:er har bara 80 slumpmässiga bitar, och i monotont läge skiljer sig på varandra följande id:n med ett, så använd inte ULID:er som hemligheter.
Kan jag korta ett Nano ID?
Ja, men kollisionsrisken växer mycket snabbt. Kontrollera värdet Antal id:n för 1 % risk för en dubblett för din längd och ditt alfabet innan du förlitar dig på ett kort id.
Varför avvisar avkodaren min ULID?
En ULID måste ha exakt 26 tecken, bara använda tecken från Crockford Base32 och börja med 0 till 7 (ett större första tecken skulle överskrida 128 bitar).
Lagras eller skickas id:na någonstans?
Nej. De genereras i din webbläsare och försvinner när du lämnar sidan.
Relaterade verktyg
- UUID-generator Gratis UUID-generator för UUID version 4 och 7. Skapa upp till 1 000 åt gången, med versaler eller utan bindestreck, och kopiera eller ladda ner som .txt.
- Lösenordsgenerator Gratis lösenordsgenerator som skapar starka slumpade lösenord på 4 till 128 tecken i webbläsaren med säker slumpgenerator. Inget sparas eller skickas.
- Unix-tidsstämpel till datum Omvandla Unix-tidsstämplar i sekunder eller millisekunder till läsbara datum i lokal tid, UTC och ISO 8601, och gör om valfritt datum till epoch-tid.