UUID generatorius

Pridėti į svetainę Metainformacija

Kiti įrankiai

Sukurti visuotinai unikalų identifikatorių

Sukurti visuotinai unikalų identifikatorių

Visuotinai unikalus identifikatorius (UUID), taip pat žinomas kaip visuotinis unikalus identifikatorius (GUID), buvo plačiai naudojamas kompiuterinėse sistemose.

Tai 128 bitų kodas, kurį sistema generuoja pagal kintamuosius ir konstantas: dabartinį laiką, MAC adresą, SHA-1 maišą, MD5 vardų erdvę. Galutinis UUID generavimo rezultatas, rodomas kaip 32 simbolių raidinis ir skaitmeninis kodas, atskirtas brūkšneliais, gali atrodyti savavališkas, tačiau iš tikrųjų tai yra sudėtingų skaičiavimų rezultatas. Taigi kompiuteris ne „išranda“ kodo, o suformuoja jį iš konkrečių techninių dydžių, kurie yra aktualūs tam tikru metu.

Tikimybė, kad tas pats UUID bus sugeneruotas dviejuose skirtinguose kompiuteriuose skirtingu laiku, yra lygi nuliui, todėl galima naudoti gautus kodus taškams / vietiniams duomenims identifikuoti neatsižvelgiant į koordinavimo centrą. Šiandien UUID / GUID yra visur tiek internetiniuose, tiek neprisijungus veikiančiuose tinkluose ir efektyviai veikia ne tik pasaulinėje interneto erdvėje, bet ir atskirose kompiuterių sistemose.

UUID istorija

128 bitų UUID kodus devintajame dešimtmetyje pirmą kartą panaudojo amerikiečių kompanija „Apollo Computer“. Jie buvo pagrįsti paprastesniais 64 bitų kodais, naudojamais domene / OS, ir buvo plačiai naudojami „Open Software Foundation“ skaičiavimo aplinkoje.

Atsiradus pirmosioms „Windows“ platformoms, visame pasaulyje unikalus identifikatorius buvo apibendrintas ir standartizuotas. „Microsoft“ priėmė DCE dizainą iš „Apollo Computer“ ir užregistravo URN vardų erdvę RFC 4122. 2005 m. IETF pasiūlė pastarąjį kaip naują standartą, o UUID buvo standartizuotas ITU.

Anksčiau 2002 m. buvo nustatytos sistemos veikimo problemos naudojant UUID kaip pirminius raktus vietinėse duomenų bazėse. Tai buvo ištaisyta 4 versijoje pridedant neatsitiktinę priesagą, pagrįstą kompiuterio sistemos laiku. Vadinamasis COMB (Combined GUID Time Identifier) ​​metodas padidino kodo dubliavimosi riziką, tačiau tuo pačiu žymiai pagerino našumą dirbant su Microsoft SQL Server.

Tobulėjant IT technologijoms, universalus unikalus identifikatorius nustojo būti labai specializuota technine priemone ir šiandien juo gali naudotis visi. Sugeneruotų kodų pasikartojimo tikimybė nėra lygi nuliui, o linkusi į ją ir pagal juos galima identifikuoti bet kokią skaitmeninę informaciją, o po to juos galima sujungti į atskirus duomenų masyvus su minimalia pasikartojimo rizika.

UUID privalumai

Pasaulinių unikalių kodų generatoriai nereikalauja centralizuoto duomenų suderinimo / sinchronizavimo ir yra laisvai prieinami visiems vartotojams. Pagrindiniai UUID pranašumai yra šie:

  • Minimali kodų „susidūrimo“ (pasikartojimo) rizika. Nepaisant didelio jų naudojimo, pasikartojimo tikimybė yra lygi nuliui.
  • Galimybė sujungti skirtingus duomenų masyvus naudojant UUID kaip pirminius (unikalius) raktus.
  • Supaprastintas duomenų paskirstymas keliuose išsklaidytuose serveriuose.
  • Galimybė generuoti kodus neprisijungus.

Unikalūs identifikavimo kodai, parašyti formatu xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx, leidžia išsklaidytoms sistemoms atpažinti informaciją be koordinavimo iš vieno duomenų centro: beveik nulinė klaidų / pasikartojimų tikimybė. Dėl šios funkcijos, naudojimo paprastumo ir nedidelių kompiuterio našumo reikalavimų, UUID yra paklausus ir būtinas įvairiose IT pramonės šakose ir autonominėse skaičiavimo sistemose.

Visuotinai unikalus identifikatorius

Visuotinai unikalus identifikatorius

UUID gali generuoti kodus naudodamas skirtingus algoritmus ir kintamuosius / pastovias reikšmes.

Iš viso yra 5 identifikatoriaus versijos, naudojant sistemos datą / laiką ir MAC adresus, DCE saugos protokolus, MD5 maišą, SHA-1 maišą ir vardų erdvę, kai sugeneruojama.

Visais atvejais galutinis rezultatas rodomas formatu xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx (skaičius šešioliktaine žyma, sudarytas iš mažųjų lotyniškų raidžių ir skaičių, brūkšneliais padalytas į penkis blokus: 8–4 -4-4- 12), M reiškia versiją, N reiškia UUID variantą.

Taigi sistema vienu metu naudoja 36 simbolius (26 raides ir 10 skaičių), todėl tikimybė, kad 32 skaitmenų kodai pasikartos, yra lygi nuliui, nepaisant to, kad juos kasdien generuoja milijonai vartotojų visame pasaulyje.

UUID versijos

1 versija

Pirmoji unikalaus identifikatoriaus versija generuojant kodą yra pagrįsta kompiuterio MAC adresu ir jo sistemos laiku, kuris keičia savo skaitinę reikšmę 1 kartą per sekundę. Generavimo procesas susideda iš penkių etapų:

  • Apatiniai 32 informacijos bitai paimti iš UTC žymos. Jie konvertuojami į 8 šešioliktainius simbolius ir užima 4 baitus.
  • Iš tos pačios UTC etiketės paimama vidutiniškai 16 bitų informacijos ir konvertuojama į 4 šešioliktainius simbolius, užimančius 2 baitus.
  • Paimami 12 viršutinių informacijos bitų iš UTC žymos ir konvertuojami į dar 4 šešioliktainius simbolius.
  • Dar 1–3 bitai patenka į laikrodžio seką ir sumažina susidūrimų riziką, nes atsiranda atsitiktinumo / neapibrėžtumo. Sistemos laikas arba sąlyginai sulėtinamas, arba atidedamas – kad „nesusikirstų“ du ar daugiau tame pačiame kompiuteryje vienu metu veikiančių identifikatorių.
  • Likusieji 6 baitai yra pastovi vertė, sugeneruota pagal įrenginio MAC adresą. Jį sudaro 12 šešioliktainių simbolių ir 48 bitų dydžio.

Kadangi pirmosios UUID versijos algoritmas yra neatsiejamai susijęs su sistemos laiku, laikrodžio sekos naudojimas yra privalomas. Priešingu atveju rizika generuoti tuos pačius kodus išauga daug kartų – per sekundę, kai sistemos laikas „užstringa“ ties viena ar kita verte.

2 versija

Antroji versija minimaliai skiriasi nuo pirmosios ir praktiškai naudojama retai. Vietoj laikrodžio sekos jis naudoja sistemos identifikatorių, susietą su vartotojo duomenimis arba kitomis unikaliomis reikšmėmis, kurios nesikartoja kituose kompiuteriuose arba pasikartoja labai retai. Antrojoje versijoje atsitiktinumo poveikis yra sumažintas ir gali būti naudojamas paskirstytos skaičiavimo aplinkos saugumui pagerinti.

3 ir 5 versijos

Jie turi daug bendro: jie naudoja unikalius pavadinimus ir pavadinimus (iš MD5 erdvės), kad sukurtų kodus, ty neatsitiktines reikšmes. Tik 3 versijoje naudojama standartinė maiša, o 5 versija naudoja SHA-1 maišą. Tokie identifikatoriai mažiau priklauso nuo atsitiktinių dydžių.

4 versija

Šios UUID versijos generavimas yra daugiau nei 90 % atsitiktinis. Jame yra 6 bitai pastovioms reikšmėms, o savavališkoms – 122. Algoritmo įgyvendinimas yra toks, kad pirmiausia atsitiktinai sugeneruojami 128 informacijos bitai, o 6 iš jų pakeičiami versijos ir varianto duomenimis.

Pseudoatsitiktinių skaičių generatoriaus vaidmuo ketvirtojoje versijoje yra maksimalus, o jei jis turi per paprastą algoritmą, pasikartojimų / susidūrimų rizika žymiai padidėja. Nepaisant to, tai yra ketvirtoji versija, kuri yra labiausiai paplitusi ir dažnai naudojama praktikoje.

UUID parinktys

Tobulėjant kompiuterinėms technologijoms, unikalus UUID buvo kelis kartus patobulintas ir šiandien pateikiamas keliomis versijomis.

0 parinktis

Sukurta dirbti su senomis Apollo Network Computing System 1.5 1988 formato duomenų bazėmis. Ši parinktis yra suderinama su jais ir neprieštarauja NCS istoriniams UUID.

1 ir 2 parinktys

Naudojamas šiuolaikiniams duomenų blokams ir masyvams identifikuoti, o kanonine teksto forma jie nesiskiria vienas nuo kito, išskyrus variantų bitų rašymo tvarką. Taigi 1 parinktyje naudojama didžioji baitų tvarka, o 2 parinktis – antraštė. Pirmasis yra pagrindinis, o antrasis skirtas darbui su ankstyvaisiais GUID iš Microsoft Windows.

3 parinktis

Šiuo metu nenaudojamas. Tai rezervuota versija, skirta naudoti ateityje – kai bus išnaudotos ankstesnių parinkčių galimybės.

Dauguma sistemų koduoja identifikatorių big-endian, tačiau yra išimčių. Pavyzdžiui, skirstant Microsoft COM/OLE bibliotekose naudojamas mišrus endianas, generuojant kodą iš antraštės ir didžiosios dalies blokų. Pirmasis yra pirmieji trys UUID komponentai, o antrasis yra du paskutiniai.