Generatur ta’ ULID u Nano ID
Iġġenera ULIDs (b’għażla monotonika) jew Nano IDs b’alfabett u tul personalizzati, bil-lott, iddekodifika timestamp ta’ ULID u iċċekkja r-riskju ta’ kolliżjoni.
Probabbiltà ta’ kolliżjoni
- Daqs tal-alfabett
- —
- Entropija għal kull ID
- —
- IDs possibbli
- —
- IDs għal 1% ċans ta’ duplikat
- —
- Ħin biex jintlaħaq dak ir-riskju ta’ 1%
- —
Iddekodifika ULID
- Timestamp (UTC, ISO 8601)
- Data u ħin lokali
- Ħin Unix (ms)
- Parti każwali (80 bit, heks)
Kif tiġġenera ULIDs jew Nano IDs
- Taħt Tip ta’ ID, agħżel ULID (jista’ jiġi ordnat) jew Nano ID (qasir).
- Issettja Kemm (1 sa 1,000). Għaxar IDs jiġu ġġenerati hekk kif titgħabba l-paġna.
- Għall-ULIDs, żomm Monotoniku (jiżdied strett) immarkat biex IDs maħluqa fl-istess millisekonda xorta jiġu f’ordni, u immarka Ittri żgħar jekk is-sistema tiegħek tippreferi hekk.
- Għan-Nano IDs, agħżel Alfabett (jew Personalizzat… u ikteb il-karattri tiegħek) u Tul.
- Ikklikkja Iġġenera, imbagħad Ikkopja il-lista jew Niżżel (ID waħda f’kull linja).
Biex taqra d-data moħbija f’ULID, waħħlu taħt Iddekodifika ULID jew ikklikkja Iddekodifika l-ewwel ID. L-għodda turi t-timestamp f’UTC (ISO 8601), fil-ħin lokali tiegħek, bħala millisekondi Unix, u l-parti każwali ta’ 80 bit f’eżadeċimali.
X’inhu ULID?
ULID (Universally Unique Lexicographically Sortable Identifier) huwa identifikatur ta’ 128 bit miktub bħala 26 karattru ta’ Crockford Base32, per eżempju 01ARZ3NDEKTSV4RRFFQ69G5FAV. L-ewwel 10 karattri jikkodifikaw timestamp ta’ 48 bit f’millisekondi (biżżejjed sas-sena 10889); l-aħħar 16-il karattru huma 80 bit każwali. Crockford Base32 iħalli barra I, L, O u U biex tevita konfużjoni, u d-dekodifikar ma jiddistingwix bejn ittri kapitali u żgħar.
Peress li l-ħin jiġi l-ewwel, l-ULIDs jiġu f’ordni alfabetiku bl-ordni tal-ħolqien. Dan jagħmilhom primary keys tajbin: ringieli ġodda jiżdiedu fl-aħħar ta’ indiċi B-tree minflok ma jitqassmu bħal UUIDs każwali, u tista’ tordna b’ID minflok b’kolonna tad-data separata.
Mod monotoniku. F’millisekonda waħda, ULIDs każwali jiġu f’ordni każwali. Bl-għażla monotonika, l-għodda ssegwi l-ispeċifikazzjoni ULID: meta jinħolqu diversi IDs fl-istess millisekonda, iżżomm it-timestamp u żżid 1 mal-parti każwali preċedenti. Jekk l-arloġġ imur lura, iżżomm l-aħħar timestamp, għalhekk is-sekwenza qatt ma tonqos.
Żomm f’moħħok li ULID juri meta nħoloq. Tużahx fejn din l-informazzjoni hija sensittiva.
X’inhu Nano ID?
Nano ID huwa identifikatur każwali kompatt. Id-default huwa 21 karattru minn alfabett ta’ 64 karattru sigur għall-URL (A–Z a–z 0–9 _ -), li jagħti 126 bit każwali, simili għal UUID v4 (122 bit) f’inqas karattri. Tista’ tagħżel eżadeċimali, ċifri biss, ittri żgħar u ċifri, alfanumeriku, sett mingħajr karattri li jixbhu lil xulxin (mingħajr 0/O, 1/l/I, 5/S…) għal kodiċijiet li n-nies jiktbu, jew alfabett tiegħek ta’ 2 sa 256 karattru. Karattri duplikati f’alfabett personalizzat jitneħħew, għax jagħmlu xi karattri aktar probabbli.
Kull karattru jinġibed b’crypto.getRandomValues bl-użu ta’ rejection sampling, għalhekk m’hemm ebda bias modulo.
Probabbiltà ta’ kolliżjoni
Il-pannell Probabbiltà ta’ kolliżjoni japplika l-limitu tal-birthday. B’alfabett ta’ daqs A u tul L, hemm N = A^L IDs possibbli. Wara k IDs, iċ-ċans ta’ mill-inqas duplikat wieħed huwa madwar 1 − e^(−k²/2N), għalhekk riskju ta’ 1% jintlaħaq wara k ≈ √(2N · ln(1/0.99)) IDs. Daħħal l-IDs iġġenerati fis-siegħa biex tara kemm jieħu ħin. Bis-settings default u 1,000 ID fis-siegħa, riskju ta’ 1% jieħu madwar 149 biljun sena; b’8 karattri eżadeċimali jieħu biss madwar 9,300 ID.
Mistoqsijiet frekwenti
ULID jew UUID?
It-tnejn huma 128 bit. ULID huwa iqsar biex jinkiteb (26 karattru minflok 36) u jiġi ordnat bil-ħin. UUID verżjoni 7 issa joffri l-istess ordni taż-żmien fil-format UUID standard, li d-databases spiss jaħżnu nattivament. Agħżel UUID v7 jekk l-istack tiegħek jappoġġjah, ULID jekk trid string kompatta u li tinqara.
L-ULIDs u n-Nano IDs huma sikuri biżżejjed għal tokens?
Nano IDs bl-alfabett u t-tul default għandhom 126 bit każwali minn ġeneratur kriptografiku, li huwa biżżejjed għal links li ma jistgħux jiġu mbassra. L-ULIDs għandhom biss 80 bit każwali, u fil-mod monotoniku IDs konsekuttivi jvarjaw b’wieħed, għalhekk tużax ULIDs bħala sigrieti.
Nista’ naqsar Nano ID?
Iva, iżda r-riskju ta’ kolliżjoni jikber malajr ħafna. Iċċekkja l-valur IDs għal 1% ċans ta’ duplikat għat-tul u l-alfabett tiegħek qabel ma tiddependi fuq ID qasira.
Għaliex id-dekoder jirrifjuta l-ULID tiegħi?
ULID irid ikollu eżattament 26 karattru, juża biss karattri Crockford Base32, u jibda b’0 sa 7 (l-ewwel karattru akbar jaqbeż 128 bit).
L-IDs jinħażnu jew jintbagħtu imkien?
Le. Jiġu ġġenerati fil-brawżer tiegħek u jisparixxu meta titlaq mill-paġna.
Għodod relatati
- Generatur ta’ UUID Generatur ta’ UUID b’xejn għal verżjonijiet 4 u 7. Oħloq sa 1,000 f’daqqa, b’ittri kapitali jew mingħajr hyphens, imbagħad ikkopja jew niżżel bħala .txt.
- Ġeneratur tal-passwords Ġeneratur tal-passwords b’xejn li joħloq passwords qawwija u każwali ta’ 4 sa 128 karattru fil-brawżer b’RNG sigur. Xejn ma jinħażen jew jintbagħat.
- Konvertitur tal-Unix Timestamp Ikkonverti Unix timestamps f’sekondi jew millisekondi għal dati li jinqraw fil-ħin lokali, UTC u ISO 8601, u erġa’ ibdel kwalunkwe data f’ħin epoch.