Utilia

Gjenerues UUID

Gjenerues falas UUID për versionet 4 dhe 7. Krijo deri në 1 000 njëherësh, me shkronja të mëdha ose pa viza, pastaj kopjo ose shkarko si .txt.

Versioni

Si ta përdorësh gjeneruesin e UUID

  1. Zgjidh versionin e UUID: v4 për identifikues plotësisht të rastësishëm ose v7 për identifikues të renditur sipas kohës.
  2. Shkruaj sa UUID të duhen, nga 1 deri në 1 000.
  3. Opsionalisht aktivizo daljen me shkronja të mëdha ose hiq vizat nëse sistemi ku do t’i japësh pret formën kompakte me 32 karaktere.
  4. Gjenero, pastaj kopjo listën në clipboard ose shkarkoje si skedar .txt me një UUID për rresht.

Çfarë është një UUID?

Një UUID (Universally Unique Identifier), i njohur edhe si GUID në botën e Microsoft, është një vlerë 128-bitëshe që përdoret për të identifikuar diçka pa pasur nevojë për një autoritet qendror që ndan numra. Zakonisht shkruhet si 32 shifra heksadecimale në pesë grupe të ndara me viza, sipas modelit 8-4-4-4-12, për shembull f47ac10b-58cc-4372-a567-0e02b2c3d479. Shifra e parë e grupit të tretë është versioni, dhe shifra e parë e grupit të katërt kodon variantin (8, 9, a ose b për UUID standarde).

Meqë çdo kompjuter mund të krijojë një UUID në mënyrë të pavarur me gjasa të papërfillshme përplasjeje, UUID përdoren gjerësisht si çelësa primarë bazash të dhënash, ID kërkesash e korrelacioni në log-e, emra skedarësh për ngarkime, çelësa idempotence për API dhe identifikues në sisteme të shpërndara ku disa serverë krijojnë regjistrime në të njëjtën kohë.

Versioni 4 kundrejt versionit 7

Të dyja versionet përcaktohen te RFC 9562, standardi i vitit 2024 që zëvendësoi RFC 4122.

UUID v4 është pothuajse tërësisht i rastësishëm: 122 nga 128 bitet e tij vijnë nga një gjenerator i rastësishëm, dhe 6 bitet e mbetura mbajnë versionin dhe variantin. Nuk zbulon asgjë për kur ose ku u krijua. Gjasa e një përplasjeje është kaq e vogël sa do të duheshin rreth 103 trilionë UUID v4 për të arritur një gjasë një në një miliard për një dublikat të vetëm. Zgjidh v4 kur do identifikues të errët që nuk mbartin informacion.

UUID v7 fillon me një timestamp Unix 48-bitësh në milisekonda, të ndjekur nga versioni, varianti dhe 74 bite të rastësishëm. Si rezultat, UUID v7 të gjeneruara më vonë renditen pas atyre të gjeneruara më herët. Kjo ka shumë rëndësi për bazat e të dhënave: çelësat e rastësishëm v4 futen në pozicione të shpërndara në një indeks B-tree, duke shkaktuar ndarje faqesh dhe lokalitet të dobët të cache-it, ndërsa çelësat v7 shtohen afër fundit, ngjashëm me një numër të plotë auto-increment. Zgjidh v7 për çelësa primarë dhe çdo gjë që do ta rendisësh sipas kohës së krijimit. Mos harro që koha e krijimit mund të lexohet nga një UUID v7, ndaj shmange kur ajo informacion është e ndjeshme.

Rastësia dhe siguria

Ky mjet përdor gjeneratorin kriptografikisht të sigurt të numrave të rastësishëm të shfletuesit (API-n Web Crypto), jo Math.random(), që nuk është projektuar të jetë i paparashikueshëm. UUID gjenerohen lokalisht në pajisjen tënde dhe nuk dërgohen kurrë te një server dhe nuk regjistrohen nga ai, ndaj askush tjetër nuk i sheh vlerat që krijon.

Megjithatë, një UUID është identifikues, jo sekret. Mos u mbështet vetëm te një UUID të pahamendësueshme për të mbrojtur një dokument privat ose një lidhje rivendosjeje fjalëkalimi; kombinoje me autentifikim të duhur dhe skadim.

Opsionet e formatimit

Forma kanonike është me shkronja të vogla dhe me viza, dhe RFC 9562 rekomandon dalje me shkronja të vogla. Disa sisteme, si mjetet më të vjetra të Windows ose disa baza të dhënash, i shfaqin GUID me shkronja të mëdha, dhe disa formate ruajtjeje e preferojnë formën 32-karakterëshe pa viza. Të dyja opsionet ndryshojnë vetëm paraqitjen tekstuale; vlera 128-bitëshe themelore është identike, dhe shumica e parserave i pranojnë të gjitha këto forma.

Pyetje të shpeshta

A garantohet që UUID janë unike?

Nuk garantohet rreptësisht, por gjasa e një përplasjeje me bite të rastësishëm të gjeneruar siç duhet është aq e ulët sa mund të shpërfillet në praktikë. Rreziqet e vërteta vijnë nga gjeneratorë të prishur të rastësisë ose nga kopjimi i vlerave me dorë, jo nga formati.

A duhet të përdor UUID v4 apo v7 si çelës primar të bazës së të dhënave?

Për shumicën e projekteve të reja, v7 është zgjedhja më e mirë: i mban indekset kompakte dhe fut shpejt sepse vlerat vijnë në rend afërsisht rritës. Përdor v4 nëse nuk do që koha e krijimit të jetë e dukshme në identifikues.

A është GUID i njëjtë me UUID?

Po. GUID është emri që përdor Microsoft për të njëjtin format 128-bitësh. Një GUID nga .NET ose SQL Server është i këmbyeshëm me një UUID nga platforma të tjera.

A mund të përplasen dy UUID v7 të krijuara në të njëjtën milisekondë?

Ndajnë të njëjtën parashtesë timestamp-i, por 74 bitet e mbetura të rastësishëm e bëjnë përplasjen jashtëzakonisht të pamundshme. Brenda së njëjtës milisekondë, rendi i tyre relativ nuk garantohet të përputhet me rendin e saktë të krijimit.

Pse vizat janë opsionale?

Vizat janë aty vetëm për lexueshmëri. Heqja e tyre prodhon një varg heksadecimal 32-karakterësh që paraqet saktësisht të njëjtën vlerë, të cilin e preferojnë disa API dhe formate ruajtjeje.