Ġeneratur ta' ULID

Iġġenera ULIDs online: IDs Crockford Base32 b'26 karattru b'ħin ta' 48 bit u 80 bit każwali.

Format
IDs iġġenerati
Lest. Iġġenera ULIDs fil-brawżer tiegħek.

Kif inhu mibni dan l-ID

Tqassim
26 karattru Crockford Base32: 10 karattri tal-ħin segwiti minn 16-il karattru każwali.
Entropija
80 bit każwali wara t-timestamp tal-millisekonda ta' 48 bit.
Ħin
Iva. L-ewwel 10 karattri jikkodifikaw il-ħin f'millisekondi, u l-ordni alfabetiku isegwi l-ħin.
Riskju ta' kolliżjoni
Il-parti finali każwali għandha 80 bit; ir-riskju huwa prinċipalment dwar kemm toħloq IDs fl-istess millisekonda.
Eżempju
01M12BRQB3SJKQBPR7PBY8CBHX

L-IDs tiegħek jiġu ġġenerati lokalment b'każwalità b'saħħitha tal-browser. Xejn ma jintbagħat lil BroBroGo.

Mistoqsijiet Frekwenti (FAQ)

Għal xiex huwa tajjeb l-ULID?

ULID huwa kompatt, faċli għall-URLs u jista' jiġi magħżul skont il-ħin bħala test sempliċi, li huwa utli għal logs, keys ta' oġġetti u rekords li għandhom jiġu magħżula skont il-ħin tal-ħolqien.

ULID huwa l-istess bħal UUID v7?

Le. It-tnejn jinkludu l-ħin f'millisekondi, iżda ULID juża Crockford Base32 u 26 karattru, filwaqt li UUID v7 iżomm il-forma eżadeċimali standard ta' UUID.

X'inhu ULID u kif jaħdem il-ġeneratur tagħna

Din il-paġna tippermettilek tagħżel ULID bħala l-format tal-identifikatur, tagħżel kemm trid IDs (bejn 1 u 100), u immedjatament il-ġeneratur joħloq lista ta’ ULIDs uniċi u li jistgħu jiġu ordnati skont iż-żmien. Kull ULID jidher bħala string ta’ 26 karattru, li huwa sensitiv għall-każ (case‑insensitive) u lest biex tikkopjah waħdu jew kollha f’daqqa.

ULID huwa format ta’ identifikatur li huwa iqsar minn UUID – 26 karattru minflok 36 – u juża biss l-alfabett Crockford base32. Dan ifisser li l-ULIDs m'għandhomx hyphens, huma case‑insensitive, u huma siguri għall-URL mingħajr ma jkollok bżonn tagħmel escaping. L-ewwel 10 karattru jikkodifikaw timestamp b’preċiżjoni ta’ millisekonda, u l-bqija 16 karattru (80 bits) huma każwali. Il-valur totali huwa 128 bits, l-istess daqs ta’ UUID.

Il-ġenerazzjoni kollha ssir lokalment fil-browser tiegħek, billi tuża crypto.getRandomValues(). L-ebda informazzjoni ma tintbagħat lejn server.

Differenzi ewlenin bejn ULID, UUID u formati oħra

L-iktar differenza notevoli hija t-tul: ULID għandu 26 karattru, filwaqt li UUID (verżjoni 4) għandu 36 karattru, inklużi erba’ hyphens. ULID ma juża l-ebda hyphen, u l-alfabett Crockford base32 huwa magħmul minn 0-9 u A-Z, imma mingħajr l-ittri I, L, O, u U biex jiġi evitat konfużjoni viżwali (pereżempju I u 1, O u 0). Dan jagħmel l-ULIDs faċli biex jinqraw u jiġu traskritti manwalment.

Barra minn hekk, ULID huwa sortable skont iż-żmien tal-ħolqien, grazzi għat-timestamp inkorporat. Dan ifisser li jekk tiġġenera żewġ ULIDs f’mumenti differenti, l-ewwel wieħed (l-iktar qadim) ikollu string iżgħar (lessikografikament) mit-tieni wieħed. Din il-proprjetà hija utli ferm għal databases li jużaw B‑tree indexing, għax il-valuri l-ġodda jiddaħħlu fil-qrib ta’ xulxin, aktar milli jiġu mferrxin b'mod każwali. B'kuntrast, UUID v4 huwa kompletament każwali u jista' jikkawża frammentazzjoni tal-indiċi.

Meta mqabbel ma' NanoID, li għandu tul varjabbli, ULID għandu daqs fiss ta' 26 karattru u jipprovdi garanzija ta' 128 bits ta' spazju. NanoID spiss juża alfanumeriċi iżda jista' jkun iqsar jekk tuża charset iżgħar, imma mhux sortable b'mod nattiv.

L-istruttura interna ta' ULID: timestamps u każwalità

Kull ULID huwa magħmul minn żewġ partijiet: l-ewwel 10 karattru huma l-kodifikazzjoni ta' timestamp ta' 48 bits, li jirrappreżenta l-għadd ta' millisekondi mill-epoch tal-UNIX (1 ta' Jannar 1970). Din il-parti tippermetti ordni kronoloġika. Il-kumplament ta' 16 karattru (80 bits) huma każwali, u jiġu ġġenerati b'mod kriptografikament sigur.

Il-kodifikazzjoni tintuża Crockford Base32, li taħdem hekk: kull karattru jirrappreżenta 5 bits (għax 2^5 = 32). Għalhekk, 10 karattru jkopru 50 bits, imma t-timestamp għandu 48 bits, u l-bqija (2 bits) huma zero-padded. Iż-żewġ karattru żejda fil-parti tat-timestamp mhux problema, għax l-iskema tutilizza l-ispazju kollu. Bl-istess mod, 16 karattru każwali jagħmlu 80 bits preċiżi.

Minħabba l-komponent taż-żmien, ULIDs mhumiex garantiti li jkunu ordnati b'mod strett jekk jiġu ġġenerati fl-istess millisekonda. F'dak il-każ, l-ordni bejniethom tiddependi fuq il-parti każwali, li tista' tagħti ordni differenti. Għal ħtiġijiet fejn l-ordni eżatta hija kritika (pereżempju sistemi ta' messaġġi f'ħin reali), jista' jkollok bżonn mekkaniżmu addizzjonali.

Il-probabbiltà ta' kolliżjoni hija estremament baxxa: b'80 bits ta' każwalità, għandek 2^80 valuri possibbli. Anke jekk tiġġenera miljuni ta' ULIDs kull sekonda, iċ-ċans ta' duplikazzjoni huwa negliġibbli għal ħafna użi prattiċi.

Kif tuża l-paġna: inputs u outputs

Meta tidħol fil-paġna, l-ewwel għażla hija l-format – trid tagħżel ULID. Imbagħad, trid tiddaħħal numru bejn 1 u 100 għall-għadd ta' IDs li trid tiġġenera. Hekk kif tibdel kwalunkwe għażla, il-lista ta' IDs tiġi riġenerata awtomatikament.

L-output juri lista ta' ULIDs, kull wieħed f'ringiela separata, b'26 karattru mingħajr hyphens u kollha bl-istess daqs. Tista' tikklikkja fuq ULID individwali biex tikkopjah fil-clipboard, jew tuża buttuna "Ikkopja Kollha" biex tikkopja l-lista kollha. Stat jidher: "Ready.", "Generated.", u "Copied all!" meta tkun ikkopjajt kollox.

M'hemm l-ebda toggle għal uppercase jew hyphens għax ULID huwa inerentement case‑insensitive (tista' tuża kemm ittri kbar kif ukoll żgħar, u huma interpretati l-istess) u m'għandux hyphens. L-uniku output huma l-ULIDs nfushom, flimkien ma' għadd li juri kemm ġew ġġenerati.

Min għandu bżonn ULIDs u fejn jintużaw

  • Żviluppaturi tal-web u mobbli li għandhom bżonn identifikaturi iqsar u siguri għall-URLs, li jistgħu jiġu ordnati skont iż-żmien mingħajr ma jżidu kolonna separata ta' timestamp.
  • Amministraturi tad-databases li jfasslu primary keys għal tabelli b'ħafna kitbiet. Minħabba li ULIDs huma monotonically increasing (kważi dejjem jiżdiedu), l-inserzjonijiet f'B-tree jsiru aktar effiċjenti, u l-indeċi jibqgħu kompatti.
  • Inġiniera tas-sistemi distribwiti fejn l-identifikaturi għandhom ikunu uniċi f'ħafna nodi iżda wkoll sortabbli. ULIDs jippermettu ordni globali mingħajr ma jkollok bżonn server ċentrali.
  • Disinjaturi tal-APIs li iridu juru IDs pubblikament li huma diffiċli biex jiġu indovinati iżda faċli għall-bniedem – mingħajr konfużjoni ta' ittri kbar/żgħar u mingħajr hyphens li jistgħu jintilfu.

ULIDs huma wkoll popolari f'sistemi bħal messaġġier, log entries, u IDs ta' oġġetti f'bażijiet ta' data fejn l-ordni kronoloġika hija importanti iżda l-identifikatur għandu jkun qasir.

Mistoqsijiet frekwenti (FAQ)

1. X'inhi d-differenza bejn ULID u UUID v7?
Iż-żewġ formati jinkorporaw timestamp, imma ULID juża Crockford base32 u m'għandux hyphens, filwaqt li UUID v7 juża l-format standard tal-UUID b'hexadecimal u hyphens. ULID għandu 26 karattru, UUID v7 għandu 36.

2. Jista' ULID jiġi kkonvertit lura għat-timestamp?
Iva. L-ewwel 10 karattru jikkodifikaw it-timestamp f'millisekondi. Tista' tuża librerija biex tiddekodifikahom, imma l-paġna tagħna ma toffrix din il-funzjoni.

3. X'jiġri jekk niġġenera aktar minn 100 ULID?
Il-ġeneratur jaċċetta biss bejn 1 u 100. Jekk iddaħħal numru barra minn dan, mhux se jaħdem. Trid tiġġenera f'lottijiet iżgħar jekk għandek bżonn aktar.

4. Il-ULIDs huma siguri?
Il-parti każwali hija ġġenerata b'mod kriptografikament sigur (crypto.getRandomValues), għalhekk mhumiex prevedibbli. Madankollu, peress li t-timestamp huwa inkluż, xi ħadd jista' jara meta ġie maħluq l-ID jekk jiddekodifika l-ewwel 10 karattru.

5. Il-paġna taħdem offline?
Il-ġenerazzjoni ssir kollha fil-browser, m'hemmx bżonn ta' konnessjoni tal-internet wara li l-paġna tkun inngħabbiet. Jekk tagħti l-paġna offline (permezz ta' cache), tista' tużaha.

6. Għandi bżonn nagħżel bejn uppercase u lowercase?
Le. ULID huwa case‑insensitive, għalhekk tista' tuża kwalunkwe tip ta' ittra. Il-ġeneratur tagħna joħroġhom bl-uppercase (il-konvenzjoni standard), imma jekk tikkopjahom f'sistema li tikkonvertihom għal lowercase, xorta jaħdmu.