Generator UUID

Dodajte na stran Metainformacije

Drugi pripomočki

Ustvarjanje UUID/GUID

Ustvarjanje UUID/GUID

Univerzalni enolični identifikator (UUID), znan tudi kot globalni enolični identifikator (GUID), se pogosto uporablja v računalniških sistemih.

To je 128-bitna koda, ki jo generira sistem na podlagi spremenljivk in konstant: trenutni čas, naslov MAC, razpršitev SHA-1, imenski prostor MD5. Končni rezultat generiranja UUID-ja, prikazanega kot 32-mestna alfanumerična koda, ločena z vezaji, se morda zdi poljuben, v resnici pa je rezultat zapletenih izračunov. Tako si računalnik ne »izmisli« kode, ampak jo oblikuje iz specifičnih tehničnih veličin, ki so relevantne v danem trenutku.

Verjetnost, da bo isti UUID ustvarjen na dveh različnih računalnikih ob različnih časih, se nagiba k ničli, kar omogoča uporabo nastalih kod za identifikacijo točk/lokalnih podatkov brez sklicevanja na koordinacijski center. Danes je UUID/GUID vseprisoten v spletnih in nespletnih omrežjih in učinkovito deluje ne samo v globalnem internetnem prostoru, ampak tudi v samostojnih računalniških sistemih.

Zgodovina UUID

128-bitne kode UUID je prvič uporabilo ameriško podjetje Apollo Computer v osemdesetih letih prejšnjega stoletja. Temeljili so na enostavnejših 64-bitnih kodah, ki se uporabljajo v domeni/OS, in so našli široko uporabo v računalniškem okolju Open Software Foundation.

S pojavom prvih platform Windows je bil globalni enolični identifikator posplošen in standardiziran. Microsoft je prevzel zasnovo DCE od Apollo Computer in registriral imenski prostor URN v RFC 4122. Leta 2005 je IETF slednjega predlagal kot nov standard, UUID pa je bil standardiziran znotraj ITU.

V začetku leta 2002 so bile pri uporabi UUID-jev kot primarnih ključev v lokalnih bazah podatkov ugotovljene težave z zmogljivostjo sistema. Te so bile popravljene v različici 4 z dodajanjem nenaključne pripone glede na sistemski čas računalnika. Tako imenovani pristop COMB (Combined GUID Time Identifier) ​​je povečal tveganje podvajanja kode, vendar je hkrati znatno izboljšal zmogljivost pri delu s strežnikom Microsoft SQL Server.

Z razvojem IT tehnologij univerzalni enolični identifikator ni več visoko specializirano tehnično orodje in danes ga lahko uporablja vsak. Verjetnost ponovitve generiranih kod ni enaka nič, ampak se nagiba k njej, z njimi pa je mogoče identificirati vse digitalne informacije, nato pa jih je mogoče združiti v eno samo podatkovno matriko z minimalnimi tveganji ponovitve.

Prednosti UUID

Generatorji globalnih edinstvenih kod ne zahtevajo centraliziranega usklajevanja/sinhronizacije podatkov in so prosto dostopni vsem uporabnikom. Glavne prednosti UUID vključujejo:

  • Minimalna tveganja "kolizije" (ponovitve) kod. Kljub množični uporabi se verjetnost ponovitve nagiba k ničli.
  • Zmožnost združevanja različnih nizov podatkov z uporabo UUID-jev kot primarnih (edinstvenih) ključev.
  • Poenostavljena distribucija podatkov med več razpršenimi strežniki.
  • Možnost ustvarjanja kod brez povezave.

Edinstvene identifikacijske kode, zapisane v formatu xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx, omogočajo razpršenim sistemom, da prepoznajo informacije brez koordinacije iz enega samega podatkovnega centra: s skoraj ničelno verjetnostjo napak/ponovitev. Zaradi te funkcije, skupaj z enostavno uporabo in majhnimi zahtevami za zmogljivost računalnika, je UUID povpraševanje in nepogrešljiv v številnih panogah IT in avtonomnih računalniških sistemih.

Univerzalni enolični identifikator

Univerzalni enolični identifikator

UUID lahko ustvari kode z uporabo različnih algoritmov in spremenljivk/konstantnih vrednosti.

Obstaja skupno 5 različic identifikatorja, ki uporabljajo sistemski datum/čas in naslove MAC, varnostne protokole DCE, zgoščevanje MD5, zgoščevanje SHA-1 in imenski prostor, ko je ustvarjen.

V vseh primerih je končni rezultat prikazan v obliki xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx (število v šestnajstiškem zapisu, sestavljeno iz malih latiničnih črk in številk ter razdeljeno z vezaji na pet blokov: 8-4 -4-4- 12), M pomeni različico, N pomeni različico UUID.

Tako sistem uporablja 36 znakov naenkrat (26 črk in 10 številk), tako da se verjetnost ponavljanja 32-mestnih kod nagiba k ničli, kljub dejstvu, da jih dnevno ustvarjajo milijoni uporabnikov po vsem svetu.

Različice UUID

Različica 1

Prva različica edinstvenega identifikatorja pri generiranju kode temelji na naslovu MAC računalnika in njegovem sistemskem času, ki spreminja svojo številčno vrednost 1-krat na sekundo. Postopek generiranja je sestavljen iz petih stopenj:

  • Nižjih 32 bitov informacij je vzetih iz oznake UTC. Pretvorijo se v 8 šestnajstiških znakov in zavzamejo 4 bajte.
  • Povprečno 16 bitov informacij je vzetih iz iste oznake UTC in pretvorjenih v 4 šestnajstiške znake, ki zasedajo 2 bajta.
  • Zgornjih 12 bitov informacij iz oznake UTC se vzame in pretvori v še 4 šestnajstiške znake.
  • Dodatni 1-3 biti padejo na zaporedje ure in zmanjšajo tveganja kolizij z uvedbo stopnje naključnosti/negotovosti. Sistemski čas je bodisi pogojno upočasnjen bodisi nazaj - tako da se dva ali več identifikatorjev, ki hkrati delujejo na istem računalniku, ne "križajo".
  • Preostalih 6 bajtov je konstantna vrednost, ustvarjena na podlagi naslova MAC naprave. Sestavljen je iz 12 šestnajstiških znakov in je velik 48 bitov.

Ker je algoritem prve različice UUID neločljivo povezan s sistemskim časom, je uporaba zaporedja ure obvezna. V nasprotnem primeru se tveganje generiranja istih kod večkrat poveča - v sekundi, ko sistemski čas "zamrzne" na eni ali drugi vrednosti.

Različica 2

Druga različica se minimalno razlikuje od prve in se v praksi redko uporablja. Namesto zaporedja ure uporablja sistemski identifikator, vezan na uporabniške podatke ali druge edinstvene vrednosti, ki se na drugih računalnikih ne ponavljajo ali se ponavljajo zelo redko. Učinek naključnosti v drugi različici je zmanjšan in se lahko uporablja za izboljšanje varnosti porazdeljenega računalniškega okolja.

Različici 3 in 5

Imajo veliko skupnega: uporabljajo edinstvena imena in imena (iz prostora MD5) za ustvarjanje kod, to je nenaključnih vrednosti. Samo različica 3 uporablja standardno zgoščevanje, medtem ko različica 5 uporablja zgoščevanje SHA-1. Takšni identifikatorji so manj odvisni od naključnih spremenljivk.

Različica 4

Generacija te različice UUID je več kot 90 % naključna. Za konstantne vrednosti ima 6 bitov, za poljubne pa 122. Izvedba algoritma je, da se 128 bitov informacij najprej naključno generira, 6 od njih pa se nadomesti s podatki o različici in različici.

V četrti različici je vloga generatorja psevdonaključnih števil največja in če ima preveč preprost algoritem, se tveganje ponovitev/kolizij znatno poveča. Kljub temu je četrta različica daleč najpogostejša in pogosto uporabljena v praksi.

Možnosti UUID

Edinstveni UUID je bil z razvojem računalniške tehnologije večkrat izboljšan in danes je predstavljen v več različicah.

Možnost 0

Zasnovano za delo s podedovanimi zbirkami podatkov formata Apollo Network Computing System 1.5 1988. Ta možnost je nazaj združljiva z njimi in ni v nasprotju z zgodovinskimi UUID-ji NCS.

Možnosti 1 in 2

Uporabljajo se za identifikacijo sodobnih podatkovnih blokov in nizov, v kanonični besedilni obliki pa se med seboj ne razlikujejo, razen po vrstnem redu zapisa variantnih bitov. Možnost 1 torej uporablja vrstni red bajtov big-endian, možnost 2 pa vrstni red naslovov. Prvi je glavni, drugi pa je rezerviran za delo z zgodnjimi GUID-ji iz Microsoft Windows.

3. možnost

Trenutno ni v uporabi. Je rezervirana različica za prihodnjo uporabo – ko bodo izčrpane možnosti prejšnjih možnosti.

Večina sistemov kodira identifikator v sistemu big-endian, vendar obstajajo izjeme. Na primer, razvrščanje v knjižnicah Microsoft COM/OLE uporablja mixed-endian, medtem ko generira kodo iz blokov title-endian in big-endian. Prva so prve tri komponente UUID, druga pa zadnji dve.