An Leathanach ULID-Generator
Ar an leathanach seo, roghnaíonn tú ULID mar fhormáid an aitheantóra, socraíonn tú cé mhéad aitheantóra atá uait (idir 1 agus 100), agus gineann an uirlis láithreach liosta uathúil, insórtála de réir ama de ULIDanna. Feictear gach aitheantóir mar shraith 26 charachtar atá neamhíogair do chás agus atá réidh le cóipeáil ina aonar nó ar fad ag an am céanna. Socraíonn an chéad 10 charachtar stampa ama millisonnd, rud a fhágann gur féidir na h-aitheantóirí a shórtáil go hordlathach de réir a gcruthaithe, gan gá le colún stampa ama ar leith.
Cad a Dhéanann an Leathanach Seo Difriúil
Murab ionann agus formáidí eile ar an uirlis chéanna, tá ULIDanna níos giorra ná UUIDanna (26 carachtar i gcomparáid le 36) agus úsáideann siad aibítír base32 Crockford amháin – rud a fhágann go bhfuil siad neamhíogair do chás agus saor ó fleiscíní. Is féidir ULIDanna a shórtáil go hordlathach de réir ama cruthaithe toisc go gciondaíonn na chéad 10 charachtar stampa ama le cruinneas millisonnd. Tá siad sábháilte le húsáid i URLanna gan aon ghá le éalú. Ní thairgeann an leathanach seo lasca le haghaidh cás uachtarach nó fleiscíní, mar go bhfuil ULID neamhíogair do chás ó dhúchas agus níl aon fleiscíní ann. Tá an chuid randamach 16 charachtar (80 giotán) ar fad, agus is é 128 giotán luach iomlán an tsrutha.
Ciallaíonn sé seo, má tá tú ag dearadh bunachar sonraí nó ag tógáil córais dháilte, go soláthraíonn an leathanach seo aitheantóirí atá níos fearr ná UUID i go leor cásanna, mar gheall ar a gcomhbhrú agus a n-ordú ama. Is féidir leat iad a chóipeáil ar fad ag an am céanna, nó ceann ar cheann trí chliceáil orthu. Athraíonn an stádas ó "Réidh." go "Ginte!" go "Gach ceann cóipeáilte!" nuair a chóipeálann tú an liosta ar fad.
Struchtúr Inmheánach ULID: Stampa Ama agus Comhpháirt Randamach
Tá ULID comhdhéanta de 128 giotán, atá roinnte ina dhá chuid. Is é an chéad chuid, na chéad 10 charachtar, ná stampa ama 48 giotán le cruinneas millisonnd. Ciallaíonn sé seo gur féidir leis an stampa ama ionadaíocht a dhéanamh ar amanna ó Eanáir 2023 go dtí níos faide ná an bhliain 10,000 AD. An dara cuid, na 16 charachtar eile, ná comhpháirt randamach 80 giotán. Ciallaíonn sé seo go bhfuil an-iomaíocht ann chun collusions a sheachaint.
Úsáideann an chuid randamach crypto.getRandomValues() sa bhrabhsálaí, rud a fhágann go bhfuil an ghiniúint áitiúil agus príobháideach. Ní sheoltar aon rud go dtí freastalaí riamh. Toisc gur áitiúil a tharlaíonn an ghiniúint, is féidir leat muinín a bheith agat as na halgartaim randamacha láidre gan imní faoi shlándáil líonra.
Tá sé tábhachtach a thabhairt faoi deara nach ráthaíonn ULID ordú docht do na haitheantóirí a ghintear laistigh den millisonnd céanna. Má ghineann tú 100 ULIDanna ag an nóiméad céanna, beidh an stampa ama comhionann acu go léir, agus is é an chuid randamach amháin a shocraíonn a n-ord. Mar sin, agus tú ag sórtáil, gheobhaidh tú iad in ord an ama ar dtús, ach ansin in ord randamach laistigh den millisonnd sin.
Aibítír Base32 Crockford agus Na Buntáistí a Ghabhann Léi
Úsáideann ULID aibítír base32 Crockford, atá difriúil ó aibítir chaighdeánach base32. Tá an aibítír seo comhdhéanta de 0-9 agus A-Z, ach gan I, L, O, nó U. Ciallaíonn sé seo gur féidir leat carachtair amhrasacha ar nós "I" (uachtarach) agus "l" (íseal) a sheachaint, agus "O" agus "0". Mar sin, tá sé éasca carachtair a léamh agus a thrascríobh de láimh mar gheall ar a neamhthréigean amhairc.
Tá an aibítír neamhíogair do chás freisin. Ciallaíonn sé seo gur féidir leat ULID a scríobh i gcás uachtarach nó íseal, agus aithneofar mar an gcéanna é. Tá sé seo úsáideach go háirithe i gcásanna ina mbíonn ort ULID a chóipeáil nó a thras-scríobh de láimh, mar ní gá duit a bheith buartha faoi cén cás atá i gceist.
Toisc nach bhfuil aon fleiscíní ann, is féidir ULIDanna a chóipeáil agus a ghreamú go héasca, agus tá siad sábháilte le húsáid i URLanna gan aon ghá le éalú. Tá na carachtair ar fad neamhchoitianta de réir RFC 3986, rud a fhágann gur féidir iad a úsáid go díreach i URLanna gan percent-encoding.
Comparáid le UUID v4 agus UUID v7
Tá UUID v4 fós in úsáid go forleathan, ach tá sé 36 charachtar ar fad, le fleiscíní. Tá UUID v7 ag tosú ag glacadh le smaoineamh ULID, le stampa ama mar chuid dá struchtúr. Ach tá ULID níos giorra fós: 26 carachtar i gcomparáid le 36 le UUID. Ciallaíonn sé seo go dtógann sé níos lú spáis i mbunachar sonraí, i gcóid, agus i bhfáinní URL. Mar shampla, má tá colún agat le UUID v4 i mbunachar sonraí, tógfaidh sé níos mó spáis ná colún le ULID.
Tá sé níos éasca freisin ULIDanna a shórtáil de réir ama gan gá le colún stampa ama ar leith. Ciallaíonn sé seo gur féidir leat na hinscríbhinní is déanaí a aisghabháil go tapa ó innéacs B-crann, mar go bhfuil siad ag méadú go monatónach. Is féidir le UUID v7 an rud céanna a dhéanamh, ach tá sé níos troime ná ULID.
Úsáideann ULID aibítír base32 Crockford, atá níos sábháilte agus níos éasca le húsáid ná UUID. Tá UUID v4 agus v7 bunaithe ar aibítir heicsidheachúlach, a d'fhéadfadh carachtair atá deacair a scaradh a áireamh. Mar shampla, i UUID, feiceann tú carachtair ar nós "8" agus "B", ach i ULID, tá carachtair cosúil le "3" agus "C" níos éasca le léamh.
Dóchúlacht Collusions agus Sábháilteacht
Toisc go bhfuil 80 giotán randamach ann, is é an dóchúlacht go dtarlódh collusion ná an-íseal. Ciallaíonn sé seo go bhfuil seans ann go dtarlóidh collusion, ach tá sé chomh híseal sin nach mbíonn imní ort. Má ghineann tú 1,000 ULIDanna in aghaidh an tsoicind, bheadh sé 100 milliún bliain sula mbeadh dóchúlacht collusion de 50% ann, go garbh.
Tá sé tábhachtach a thabhairt faoi deara go bhfuil an ghiniúint áitiúil le crypto.getRandomValues(), a sholáthraíonn fíor-randamacht sa bhrabhsálaí. Ní hionann é sin agus randamacht shamhailteach le Math.random(), atá níos laige agus níos intuartha. Cuidíonn sé seo le collusions a sheachaint agus le slándáil iomlán a mhéadú.
Ní sheoltar aon rud go dtí freastalaí, rud a fhágann go bhfuil an ghiniúint príobháideach agus sábháilte. Is féidir leat muinín a bheith agat as an ngné seo gan aon imní faoi phríobháideacht sonraí nó slándáil líonra.
Cé a Theastaíonn an Leathanach seo
- Forbróirí gréasáin agus soghluaiste atá ag teastáil aitheantóirí níos giorra, sábháilte do URLanna, ar féidir iad a shórtáil de réir ama gan colún stampa ama ar leith.
- Riarthóirí bunachar sonraí atá ag dearadh príomh-eochracha a fheabhsaíonn feidhmíocht innéacs B-chrann toisc go bhfuil na haitheantóirí nua ag méadú go monatónach.
- Ailtirí córais atá ag tógáil córais dháilte ina gcaithfidh aitheantóirí a bheith uathúil thar iliomad nóid ach atá fós insórtála agus dlúth.
- Dearthóirí API atá ag iarraidh aitheantóirí poiblí a nochtadh atá deacair a buille faoi thuairim ach atá cairdiúil don duine (gan mearbhall ar chás, gan débhríocht fleiscíne).
- Aon duine a bhfuil UUID rófhada nó ró-mhí-úsáideach aige agus a bhfuil gá le rogha eile atá chomh dlúth le 128 giotán ach i ngné níos lú.
Ceisteanna Coitianta
Cén fáth nach féidir níos mó ná 100 ULID a ghiniúint ag an am céanna? Socraíonn an leathanach teorainn idir 1 agus 100 le feidhmíocht a chinntiú. Má theastaíonn níos mó uait, is féidir leat an uirlis a úsáid arís agus arís eile.
An bhfuil sé sábháilte ULIDanna a úsáid mar phríomh-eochracha i mbunachar sonraí? Tá, go háirithe toisc go bhfuil siad insórtála de réir ama, agus mar sin feabhsaíonn siad feidhmíocht innéacs B-chrann. Ach ná bí ag súil le hordú docht laistigh den millisonnd céanna.
Cén fáth a bhfuil ULID neamhíogair do chás? Úsáideann ULID aibítír base32 Crockford, a dhéanann na carachtair go léir neamhíogair do chás. Ciallaíonn sé seo gur féidir leat iad a scríobh i gcás uachtarach nó íseal, agus aithneofar mar an gcéanna iad.
Cé chomh dóchúil is atá collusion idir dhá ULID? Tá 80 giotán randamach ann, mar sin is an-íseal é an dóchúlacht. Bheadh sé 100 milliún bliain sula mbeadh dóchúlacht collusion 50% agat le 1,000 ULIDanna in aghaidh an tsoicind, go garbh.
An féidir ULIDanna a úsáid i URLanna gan éalú? Tá, tá gach carachtar sábháilte de réir RFC 3986, mar sin is féidir iad a úsáid go díreach i URLanna gan aon ghá le percent-encoding.
Cén difríocht atá idir ULID agus NanoID? Tá ULID bunaithe ar 128 giotán le stampa ama, agus is féidir le NanoID a bheith fad éagsúil. Tá ULID caighdeánaithe agus insórtála de réir ama, agus is é 26 carachtar é i gcónaí. Is rogha níos solúbtha é NanoID ach níl sé insórtála de réir ama.