Generator UUID-a

Dodajte na stranicu Metapodaci

Ostali alati

Generiraj univerzalni jedinstveni identifikator

Generiraj univerzalni jedinstveni identifikator

Univerzalni jedinstveni identifikator (UUID), poznat i kao globalni jedinstveni identifikator (GUID), naširoko se koristi u računalnim sustavima.

To je 128-bitni kod koji generira sustav na temelju varijabli i konstanti: trenutno vrijeme, MAC adresa, SHA-1 hash, MD5 imenski prostor. Krajnji rezultat generiranja UUID-a, prikazanog kao alfanumerički kod od 32 znaka odvojen crticama, može se činiti proizvoljan, ali zapravo je rezultat složenih izračuna. Dakle, računalo ne “izmišlja” kod, već ga oblikuje od specifičnih tehničkih veličina koje su relevantne u određenom trenutku.

Vjerojatnost da će isti UUID biti generiran na dva različita računala u različito vrijeme teži nuli, što omogućuje korištenje dobivenih kodova za identifikaciju točaka/lokalnih podataka bez upućivanja na koordinacijski centar. Danas je UUID/GUID sveprisutan u online i offline mrežama i učinkovito radi ne samo u globalnom internetskom prostoru, već iu samostalnim računalnim sustavima.

Povijest UUID-a

128-bitne UUID kodove prva je upotrijebila američka tvrtka Apollo Computer 1980-ih. Temeljili su se na jednostavnijim 64-bitnim kodovima koji se koriste u domeni/OS-u i našli su široku upotrebu u računalnom okruženju Open Software Foundation.

S pojavom prvih Windows platformi, globalni jedinstveni identifikator je generaliziran i standardiziran. Microsoft je usvojio DCE dizajn od Apollo Computera i registrirao URN namespace u RFC 4122. IETF je 2005. predložio potonji kao novi standard, a UUID je standardiziran unutar ITU-a.

Ranije 2002., problemi s performansama sustava identificirani su prilikom korištenja UUID-ova kao primarnih ključeva u lokalnim bazama podataka. To je popravljeno u verziji 4 dodavanjem nenasumičnog sufiksa na temelju sistemskog vremena računala. Takozvani COMB (Combined GUID Time Identifier) ​​pristup povećao je rizike dupliciranja koda, ali je u isto vrijeme značajno poboljšao performanse pri radu s Microsoft SQL Serverom.

Razvojem IT tehnologija univerzalni jedinstveni identifikator prestao je biti usko specijalizirani tehnički alat i danas ga svatko može koristiti. Vjerojatnost ponavljanja generiranih kodova nije jednaka nuli, već joj teži, a sve digitalne informacije se mogu identificirati pomoću njih, nakon čega se mogu kombinirati u pojedinačne nizove podataka uz minimalne rizike ponavljanja.

Prednosti UUID-a

Generatori globalnih jedinstvenih kodova ne zahtijevaju centralizirano usklađivanje/sinkronizaciju podataka i besplatno su dostupni svim korisnicima. Glavne prednosti UUID-a uključuju:

  • Minimalni rizici od "kolizije" (ponavljanja) kodova. Unatoč njihovoj masovnoj upotrebi, vjerojatnost ponavljanja teži nuli.
  • Mogućnost spajanja različitih nizova podataka korištenjem UUID-ova kao primarnih (jedinstvenih) ključeva.
  • Pojednostavljena distribucija podataka na više disperziranih poslužitelja.
  • Mogućnost generiranja kodova izvan mreže.

Jedinstveni identifikacijski kodovi, napisani u formatu xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx, omogućuju disperziranim sustavima da prepoznaju informacije bez koordinacije iz jednog podatkovnog centra: s gotovo nultom vjerojatnošću pogrešaka/ponavljanja. Ova značajka, zajedno s jednostavnošću upotrebe i niskim zahtjevima za performansama računala, čini UUID traženim i nezamjenjivim u širokom spektru IT industrija i autonomnih računalnih sustava.

Univerzalno jedinstveni identifikator

Univerzalno jedinstveni identifikator

UUID može generirati kodove pomoću različitih algoritama i varijabli/konstantnih vrijednosti.

Postoji ukupno 5 verzija identifikatora, koristeći sistemski datum/vrijeme i MAC adrese, DCE sigurnosne protokole, MD5 hash, SHA-1 hash i imenski prostor kada se generiraju.

U svim slučajevima, konačni rezultat se prikazuje u formatu xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx (broj u heksadecimalnom zapisu, koji se sastoji od malih latiničnih slova i brojeva, a podijeljen je crticama u pet blokova: 8-4 -4-4- 12), M označava verziju, N označava UUID varijantu.

Dakle, sustav koristi 36 znakova odjednom (26 slova i 10 brojeva), tako da vjerojatnost ponavljanja 32-znamenkastih kodova teži nuli, unatoč činjenici da ih svakodnevno generiraju milijuni korisnika širom svijeta.

UUID verzije

Verzija 1

Prva verzija jedinstvenog identifikatora, prilikom generiranja koda, temelji se na MAC adresi računala i njegovom sistemskom vremenu, koje mijenja svoju numeričku vrijednost 1 put u sekundi. Proces generiranja sastoji se od pet faza:

  • Donja 32 bita informacija preuzeta su iz UTC oznake. Pretvaraju se u 8 heksadecimalnih znakova i zauzimaju 4 bajta.
  • U prosjeku se 16 bitova informacija uzima iz iste UTC oznake i pretvara u 4 heksadecimalna znaka koji zauzimaju 2 bajta.
  • Gornjih 12 bitova informacija iz UTC oznake uzima se i pretvara u još 4 heksadecimalna znaka.
  • Još 1-3 bita padaju na sekvencu takta i smanjuju rizike od kolizija uvođenjem određenog stupnja slučajnosti/nesigurnosti. Sistemsko vrijeme je ili uvjetno usporeno ili vraćeno - tako da se dva ili više identifikatora koji rade na istom računalu u isto vrijeme ne "ukrštaju".
  • Preostalih 6 bajtova stalna je vrijednost generirana na temelju MAC adrese uređaja. Sastoji se od 12 heksadecimalnih znakova i veličine je 48 bita.

Budući da je algoritam prve verzije UUID-a neraskidivo povezan sa sistemskim vremenom, korištenje sekvence sata je obavezno. U suprotnom, rizici od generiranja istih kodova višestruko se povećavaju - tijekom sekunde kada se sistemsko vrijeme "zamrzne" na jednoj ili drugoj vrijednosti.

Verzija 2

Druga verzija minimalno se razlikuje od prve i rijetko se koristi u praksi. Umjesto sekvence sata, koristi identifikator sustava vezan za korisničke podatke ili druge jedinstvene vrijednosti koje se ne ponavljaju na drugim računalima ili se ponavljaju vrlo rijetko. Učinak slučajnosti u drugoj verziji sveden je na minimum i može se koristiti za poboljšanje sigurnosti distribuiranog računalnog okruženja.

Verzije 3 i 5

Imaju mnogo toga zajedničkog: koriste jedinstvena imena i imena (iz prostora MD5) za stvaranje kodova, odnosno neslučajnih vrijednosti. Samo verzija 3 koristi standardni hash, dok verzija 5 koristi SHA-1 hash. Takvi identifikatori manje ovise o slučajnim varijablama.

Verzija 4

Generacija ove verzije UUID-a je više od 90% nasumična. Ima 6 bitova za konstantne vrijednosti, a 122 za proizvoljne. Implementacija algoritma je da se 128 bita informacija prvo nasumično generira, a 6 od njih se zamjenjuje podacima o verziji i varijanti.

Uloga generatora pseudoslučajnih brojeva u četvrtoj verziji je maksimalna, a ako ima previše jednostavan algoritam, rizici od ponavljanja/sudara se značajno povećavaju. Unatoč tome, četvrta verzija je daleko najčešća i često korištena u praksi.

Opcije UUID-a

Jedinstveni UUID je nekoliko puta poboljšan kako se razvijala računalna tehnologija, a danas je predstavljen u nekoliko verzija.

Opcija 0

Dizajniran za rad s naslijeđenim bazama podataka formata Apollo Network Computing System 1.5 1988. Ova je opcija unatrag kompatibilna s njima i nije u sukobu s NCS povijesnim UUID-ovima.

Opcije 1 i 2

Koristi se za identifikaciju modernih podatkovnih blokova i nizova, au kanonskom obliku teksta ne razlikuju se jedan od drugoga, osim po redoslijedu pisanja varijantnih bitova. Dakle, opcija 1 koristi big-endian poredak bajtova, a opcija 2 koristi naslov-endian. Prvi je glavni, a drugi je rezerviran za rad s ranim GUID-ovima iz Microsoft Windowsa.

Opcija 3

Trenutno se ne koristi. To je rezervirana verzija za buduću upotrebu - kada se iscrpe mogućnosti prethodnih opcija.

Većina sustava kodira identifikator u big-endian, ali postoje iznimke. Na primjer, marshaling u Microsoftovim COM/OLE bibliotekama koristi mixed-endian dok generira kod iz blokova title-endian i big-endian. Prva su prve tri komponente UUID-a, a druga su zadnje dvije.