ULID- és Nano ID-generátor
Generálj ULID-kat (monoton opcióval) vagy Nano ID-kat egyéni ábécével és hosszal, fejtsd vissza az ULID időbélyegét, és ellenőrizd az ütközés kockázatát.
Ütközési valószínűség
- Az ábécé mérete
- —
- Entrópia azonosítónként
- —
- Lehetséges azonosítók
- —
- Azonosítók 1% esélyű duplikátumhoz
- —
- Idő az 1%-os kockázat eléréséig
- —
ULID visszafejtése
- Időbélyeg (UTC, ISO 8601)
- Helyi dátum és idő
- Unix-idő (ms)
- Véletlen rész (80 bit, hexa)
Hogyan generálj ULID-kat vagy Nano ID-kat
- Az Azonosító típusa résznél válaszd az ULID (rendezhető) vagy a Nano ID (rövid) lehetőséget.
- Add meg, Hány darab kell (1–1000). Az oldal betöltésekor azonnal elkészül tíz azonosító.
- ULID-nál hagyd bejelölve a Monoton (szigorúan növekvő) opciót, hogy az azonos ezredmásodpercben létrehozott azonosítók is sorrendben rendeződjenek, és jelöld be a Kisbetűs opciót, ha a rendszered ezt kedveli.
- Nano ID-nál válassz Ábécét (vagy Egyéni…, és írd be a saját karaktereidet), valamint Hosszt.
- Kattints a Generálás gombra, majd másold ki a listát a Másolás gombbal, vagy töltsd le a Letöltés gombbal (.txt, soronként egy azonosító).
Az ULID-ba rejtett dátum kiolvasásához illeszd be az ULID visszafejtése részbe, vagy kattints az Az első azonosító visszafejtése gombra. Az eszköz megmutatja az időbélyeget UTC-ben (ISO 8601), a helyi időd szerint, Unix-ezredmásodpercben, valamint a 80 bites véletlen részt hexában.
Mi az az ULID?
Az ULID (Universally Unique Lexicographically Sortable Identifier) egy 128 bites azonosító, amelyet 26 Crockford Base32 karakterként írnak le, például 01ARZ3NDEKTSV4RRFFQ69G5FAV. Az első 10 karakter egy 48 bites, ezredmásodperces időbélyeget kódol (a 10889. évig elég); az utolsó 16 karakter 80 véletlen bit. A Crockford Base32 az I, L, O és U betűket kihagyja a félreértések elkerülésére, a visszafejtés pedig nem érzékeny a kis- és nagybetűkre.
Mivel az idő áll elöl, az ULID-ok ábécésorrendben a létrehozás sorrendjében rendeződnek. Ez jó elsődleges kulccsá teszi őket: az új sorok a B-fa index végére kerülnek, ahelyett hogy szétszóródnának, mint a véletlen UUID-k, és külön dátumoszlop helyett az azonosító szerint is rendezhetsz.
Monoton mód. Egyetlen ezredmásodpercen belül a véletlen ULID-ok véletlen sorrendben rendeződnének. A monoton opcióval az eszköz az ULID-specifikációt követi: ha több azonosító jön létre ugyanabban az ezredmásodpercben, megtartja az időbélyeget, és 1-et ad az előző véletlen részhez. Ha az óra visszafelé ugrik, az utolsó időbélyeget tartja meg, így a sorozat soha nem csökken.
Ne feledd, hogy az ULID elárulja, mikor jött létre. Ne használd olyan helyen, ahol ez az információ érzékeny.
Mi az a Nano ID?
A Nano ID egy kompakt, véletlen azonosító. Az alapértelmezett 21 karakter hosszú, egy 64 karakteres, URL-barát ábécéből (A–Z a–z 0–9 _ -), ami 126 véletlen bitet ad, hasonlót az UUID v4-hez (122 bit), kevesebb karakterben. Választhatsz hexadecimálisat, csak számjegyeket, kisbetűket és számjegyeket, alfanumerikust, az összetéveszthető karakterek nélküli készletet (nincs 0/O, 1/l/I, 5/S…) az emberek által begépelt kódokhoz, vagy saját, 2–256 karakteres ábécét. Az egyéni ábécében az ismétlődő karaktereket az eszköz eltávolítja, mert egyes karaktereket valószínűbbé tennének.
Minden karaktert a crypto.getRandomValues húz, elutasításos mintavétellel, így nincs modulo-torzítás.
Ütközési valószínűség
Az Ütközési valószínűség panel a születésnap-korlátot alkalmazza. Ha az ábécé mérete A, a hossz pedig L, N = A^L lehetséges azonosító van. k azonosító után legalább egy duplikátum esélye körülbelül 1 − e^(−k²/2N), így az 1%-os kockázatot k ≈ √(2N · ln(1/0,99)) azonosító után éred el. Add meg az Óránként generált azonosítókat, hogy lásd, mennyi ideig tartana. Az alapbeállításokkal és óránként 1000 azonosítóval az 1%-os kockázat eléréséhez körülbelül 149 milliárd év kell; 8 hexadecimális karakter esetén csak körülbelül 9300 azonosító.
Gyakori kérdések
ULID vagy UUID?
Mindkettő 128 bites. Az ULID rövidebb leírni (26 karakter 36 helyett), és idő szerint rendeződik. Az UUID 7-es verziója ma már ugyanezt az időrendet kínálja a szabványos UUID-formátumban, amelyet az adatbázisok gyakran natívan tárolnak. Válaszd az UUID v7-et, ha a technológiai készleted támogatja, az ULID-ot pedig akkor, ha tömör, olvasható sztringet szeretnél.
Elég biztonságosak az ULID-ok és a Nano ID-k tokenekhez?
Az alapértelmezett ábécével és hosszal készült Nano ID-k 126 véletlen bitet tartalmaznak kriptográfiai generátorból, ami elég kitalálhatatlan hivatkozásokhoz. Az ULID-oknak csak 80 véletlen bitjük van, monoton módban pedig az egymást követő azonosítók egyetlen számmal különböznek, ezért az ULID-okat ne használd titokként.
Rövidíthetek egy Nano ID-t?
Igen, de az ütközés kockázata nagyon gyorsan nő. Mielőtt egy rövid azonosítóra támaszkodsz, nézd meg az Azonosítók 1% esélyű duplikátumhoz értéket a hosszodra és az ábécédre.
Miért utasítja el a visszafejtő az ULID-omat?
Az ULID-nak pontosan 26 karakter hosszúnak kell lennie, csak Crockford Base32 karaktereket használhat, és 0–7 közötti számmal kell kezdődnie (egy nagyobb első karakter túllépné a 128 bitet).
Tárolásra vagy elküldésre kerülnek valahová az azonosítók?
Nem. A böngésződben generálódnak, és az oldal elhagyásakor eltűnnek.
Kapcsolódó eszközök
- UUID-generátor Ingyenes UUID-generátor v4 és v7 verzióhoz. Akár 1000 darabot is létrehozhatsz egyszerre, nagybetűsen vagy kötőjel nélkül, majd másold ki vagy töltsd le.
- Jelszógenerátor Ingyenes jelszógenerátor 4–128 karakteres erős, véletlen jelszavakhoz, biztonságos véletlenszám-generátorral a böngésződben. Semmi nem kerül mentésre.
- Unix időbélyeg átváltó Váltsd át a másodpercben vagy ezredmásodpercben megadott Unix időbélyegeket olvasható dátummá helyi időben, UTC-ben és ISO 8601 formában, és fordítva.