Generator ULID in Nano ID
Ustvari ULID (z monotono možnostjo) ali Nano ID z abecedo in dolžino po meri, v večjem številu, dekodiraj časovni žig ULID in preveri tveganje trka.
Verjetnost trka
- Velikost abecede
- —
- Entropija na ID
- —
- Možni ID
- —
- Število ID za 1 % verjetnost dvojnika
- —
- Čas do tega 1 % tveganja
- —
Dekodiraj ULID
- Časovni žig (UTC, ISO 8601)
- Lokalni datum in čas
- Čas Unix (ms)
- Naključni del (80 bitov, šestnajstiško)
Kako ustvariti ULID ali Nano ID
- Pod Vrsta ID izberi ULID (razvrstljiv) ali Nano ID (kratek).
- Nastavi Koliko (od 1 do 1000). Deset ID se ustvari takoj ob nalaganju strani.
- Pri ULID pusti obkljukano Monotono (strogo naraščajoče), da se ID, ustvarjeni v isti milisekundi, še vedno razvrstijo po vrstnem redu, in obkljukaj Male črke, če jih tvoj sistem raje uporablja.
- Pri Nano ID izberi Abecedo (ali Po meri … in vpiši svoje znake) ter Dolžino.
- Klikni Ustvari, nato Kopiraj seznam ali Prenesi kot .txt (en ID v vrstici).
Če želiš prebrati datum, skrit v ULID, ga prilepi pod Dekodiraj ULID ali klikni Dekodiraj prvi ID. Orodje pokaže časovni žig v UTC (ISO 8601), v lokalnem času, kot milisekunde Unix in 80-bitni naključni del v šestnajstiškem zapisu.
Kaj je ULID?
ULID (Universally Unique Lexicographically Sortable Identifier) je 128-bitni identifikator, zapisan z 26 znaki Crockfordovega Base32, na primer 01ARZ3NDEKTSV4RRFFQ69G5FAV. Prvih 10 znakov kodira 48-bitni časovni žig v milisekundah (dovolj do leta 10889); zadnjih 16 znakov je 80 naključnih bitov. Crockfordov Base32 izpušča I, L, O in U, da prepreči zamenjave, dekodiranje pa ne razlikuje velikih in malih črk.
Ker je čas na začetku, se ULID po abecedi razvrstijo v vrstnem redu nastanka. To jih dela dobre za primarne ključe: nove vrstice se dodajo na konec indeksa B-drevesa in niso razpršene kot naključni UUID, razvrščaš pa lahko po ID namesto po ločenem stolpcu z datumom.
Monotoni način. Znotraj ene milisekunde bi se naključni ULID razvrstili v naključnem vrstnem redu. Z monotono možnostjo orodje sledi specifikaciji ULID: kadar je v isti milisekundi ustvarjenih več ID, ohrani časovni žig in prejšnjemu naključnemu delu prišteje 1. Če ura gre nazaj, ohrani zadnji časovni žig, tako da zaporedje nikoli ne pade.
Upoštevaj, da ULID razkrije, kdaj je bil ustvarjen. Ne uporabljaj ga tam, kjer je ta podatek občutljiv.
Kaj je Nano ID?
Nano ID je kompakten naključni identifikator. Privzeto ima 21 znakov iz 64-znakovne abecede, varne za URL (A–Z a–z 0–9 _ -), kar da 126 naključnih bitov, podobno kot UUID v4 (122 bitov), v manj znakih. Izbereš lahko šestnajstiško, samo števke, male črke in števke, alfanumerično, nabor brez podobnih znakov (brez 0/O, 1/l/I, 5/S …) za kode, ki jih ljudje tipkajo, ali svojo abecedo z 2 do 256 znaki. Podvojeni znaki v abecedi po meri se odstranijo, ker bi nekatere znake naredili verjetnejše.
Vsak znak je izbran s crypto.getRandomValues z zavračalnim vzorčenjem, zato ni pristranskosti zaradi modula.
Verjetnost trka
Plošča Verjetnost trka uporablja mejo rojstnodnevnega paradoksa. Pri abecedi velikosti A in dolžini L je možnih N = A^L ID. Po k ID je verjetnost vsaj enega dvojnika približno 1 − e^(−k²/2N), zato je 1 % tveganje doseženo po k ≈ √(2N · ln(1/0,99)) ID. Vnesi Ustvarjenih ID na uro, da vidiš, koliko časa bi to trajalo. S privzetimi nastavitvami in 1000 ID na uro 1 % tveganje traja približno 149 milijard let; z 8 šestnajstiškimi znaki le približno 9300 ID.
Pogosta vprašanja
ULID ali UUID?
Oba imata 128 bitov. ULID je krajši za zapis (26 znakov namesto 36) in se razvršča po času. UUID različice 7 zdaj ponuja isto časovno razvrščanje v standardni obliki UUID, ki jo zbirke podatkov pogosto shranjujejo izvorno. Izberi UUID v7, če ga tvoja tehnologija podpira, ULID pa, če želiš kompakten, berljiv niz.
Ali so ULID in Nano ID dovolj varni za žetone?
Nano ID s privzeto abecedo in dolžino ima 126 naključnih bitov iz kriptografskega generatorja, kar zadošča za nedoločljive povezave. ULID imajo le 80 naključnih bitov, v monotonem načinu pa se zaporedni ID razlikujejo za ena, zato ULID ne uporabljaj kot skrivnosti.
Ali lahko Nano ID skrajšam?
Da, vendar tveganje trka narašča zelo hitro. Preden se zaneseš na kratek ID, preveri vrednost Število ID za 1 % verjetnost dvojnika za svojo dolžino in abecedo.
Zakaj dekoder zavrne moj ULID?
ULID mora imeti natanko 26 znakov, uporabljati samo znake Crockfordovega Base32 in se začeti z 0 do 7 (večji prvi znak bi presegel 128 bitov).
Ali se ID kam shranjujejo ali pošiljajo?
Ne. Ustvarijo se v tvojem brskalniku in izginejo, ko stran zapustiš.
Sorodna orodja
- Generator UUID Brezplačen generator UUID različice 4 in 7. Ustvari do 1000 naenkrat, z velikimi črkami ali brez vezajev, nato kopiraj ali prenesi kot .txt.
- Generator gesel Brezplačen generator gesel, ki v brskalniku z varnim generatorjem naključnih števil ustvari močna naključna gesla z 4 do 128 znaki. Nič se ne shrani ali pošlje.
- Pretvornik časa Unix Pretvori časovne žige Unix v sekundah ali milisekundah v berljive datume v lokalnem času, UTC in ISO 8601 ter vsak datum pretvori nazaj v čas epohe.