UUID-generator

Legg til på nettstedet Metainformasjon

Andre verktøy

Generer UUID/GUID

Generer UUID/GUID

Universal Unique Identifier (UUID), også kjent som Globally Unique Identifier (GUID), har blitt mye brukt i datasystemer.

Det er en 128-bits kode som genereres av systemet basert på variabler og konstanter: gjeldende tid, MAC-adresse, SHA-1-hash, MD5-navneområde. Sluttresultatet av å generere en UUID, vist som en 32-tegns alfanumerisk kode atskilt med bindestreker, kan virke vilkårlig, men faktisk er det et resultat av komplekse beregninger. En datamaskin «oppfinner» altså ikke en kode, men danner den fra spesifikke tekniske størrelser som er relevante på et gitt tidspunkt.

Sannsynligheten for at samme UUID vil bli generert på to forskjellige datamaskiner til forskjellige tider har en tendens til null, noe som gjør det mulig å bruke de resulterende kodene for punkt/lokal dataidentifikasjon uten referanse til koordinasjonssenteret. I dag er UUID/GUID allestedsnærværende i både online og offline nettverk, og fungerer effektivt ikke bare i det globale Internett-området, men også i frittstående datasystemer.

UUID-historikk

128-biters UUID-koder ble først brukt av det amerikanske selskapet Apollo Computer på 1980-tallet. De var basert på de enklere 64-bits kodene som ble brukt i domene/OS og fant utbredt bruk i datamiljøet Open Software Foundation.

Med ankomsten av de første Windows-plattformene ble den globalt unike identifikatoren generalisert og standardisert. Microsoft tok i bruk DCE-designet fra Apollo Computer og registrerte URN-navneområdet i RFC 4122. I 2005 ble sistnevnte foreslått som en ny standard av IETF, og UUID ble standardisert innen ITU.

Tidligere i 2002 ble problemer med systemytelse identifisert ved bruk av UUID-er som primærnøkler i lokale databaser. Disse ble fikset i versjon 4 ved å legge til et ikke-tilfeldig suffiks basert på datamaskinens systemtid. Den såkalte COMB (Combined GUID Time Identifier)-tilnærmingen økte risikoen for kodeduplisering, men forbedret samtidig ytelsen betydelig når du arbeider med Microsoft SQL Server.

Med utviklingen av IT-teknologier har den universelle unike identifikatoren sluttet å være et høyt spesialisert teknisk verktøy, og i dag kan alle bruke den. Sannsynligheten for repetisjon av de genererte kodene er ikke lik null, men har en tendens til det, og all digital informasjon kan identifiseres av dem, hvoretter de kan kombineres til enkeltdatamatriser med minimal risiko for repetisjon.

UUID-fordeler

Generatorer av globale unike koder krever ikke sentralisert dataavstemming/synkronisering og er fritt tilgjengelig for alle brukere. De viktigste fordelene med UUID inkluderer:

  • Minimal risiko for "kollisjon" (repetisjon) av koder. Til tross for deres massive bruk, har sannsynligheten for gjentakelse en tendens til null.
  • Mulighet til å slå sammen ulike arrays av data ved å bruke UUID-er som primære (unike) nøkler.
  • Forenklet distribusjon av data på tvers av flere spredte servere.
  • Mulighet til å generere koder offline.

Unike identifikasjonskoder, skrevet i formatet xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx, lar spredte systemer gjenkjenne informasjon uten koordinering fra et enkelt datasenter: med en nesten null sannsynlighet for feil/repetisjoner. Denne funksjonen, sammen med brukervennlighet og små krav til datamaskinytelse, gjør UUID etterspurt og uunnværlig i en lang rekke IT-industrier og autonome datasystemer.

Universell unik identifikator

Universell unik identifikator

UUID-en kan generere koder ved hjelp av forskjellige algoritmer og variabler/konstante verdier.

Det er totalt 5 versjoner av identifikatoren, som bruker systemdato/klokkeslett og MAC-adresser, DCE-sikkerhetsprotokoller, MD5-hash, SHA-1-hash og navneområde når de genereres.

I alle tilfeller vises det endelige resultatet i formatet xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx (et tall i heksadesimal notasjon, bestående av små latinske bokstaver og tall, og delt med bindestreker i fem blokker: 8-4 -4-4- 12), M står for versjon, N står for UUID-variant.

Dermed bruker systemet 36 tegn om gangen (26 bokstaver og 10 tall), så sannsynligheten for å gjenta 32-sifrede koder har en tendens til null, til tross for at de genereres daglig av millioner av brukere rundt om i verden.

UUID-versjoner

Versjon 1

Den første versjonen av den unike identifikatoren, når koden genereres, er basert på MAC-adressen til datamaskinen og dens systemtid, som endrer dens numeriske verdi 1 gang per sekund. Genereringsprosessen består av fem stadier:

  • De nederste 32 bitene med informasjon er hentet fra UTC-taggen. De konverteres til 8 heksadesimale tegn og tar opp 4 byte.
  • Gjennomsnittlig 16 biter med informasjon hentes fra samme UTC-etikett og konverteres til 4 heksadesimale tegn som opptar 2 byte.
  • De øverste 12 bitene med informasjon fra UTC-taggen tas og konverteres til ytterligere 4 heksadesimale tegn.
  • Ytterligere 1-3 bits faller på klokkesekvensen og reduserer risikoen for kollisjoner ved å introdusere en grad av tilfeldighet/usikkerhet. Systemtiden er enten betinget redusert eller satt tilbake - slik at to eller flere identifikatorer som jobber på samme datamaskin samtidig ikke "krysser".
  • De resterende 6 bytene er en konstant verdi som genereres basert på enhetens MAC-adresse. Den består av 12 heksadesimale tegn og er på 48 biter.

Fordi algoritmen til den første versjonen av UUID er uløselig knyttet til systemtiden, er bruk av klokkesekvensen obligatorisk. Ellers øker risikoen for å generere de samme kodene mange ganger - i løpet av den andre når systemtiden "fryser" ved en eller annen verdi.

Versjon 2

Den andre versjonen er minimalt forskjellig fra den første, og brukes sjelden i praksis. I stedet for en klokkesekvens bruker den en systemidentifikator knyttet til brukerdata eller andre unike verdier som ikke gjentas på andre datamaskiner eller som gjentas svært sjelden. Effekten av tilfeldighet i den andre versjonen er minimert, og den kan brukes til å forbedre sikkerheten til et distribuert datamiljø.

Versjon 3 og 5

De har mye til felles: de bruker unike navn og navn (fra MD5-feltet) for å lage koder, det vil si ikke-tilfeldige verdier. Bare versjon 3 bruker en standard hash, mens versjon 5 bruker en SHA-1 hash. Slike identifikatorer er mindre avhengige av tilfeldige variabler.

Versjon 4

Genereringen av denne UUID-versjonen er mer enn 90 % tilfeldig. Den har 6 biter for konstante verdier, og 122 for vilkårlige. Implementeringen av algoritmen er at 128 biter med informasjon først genereres tilfeldig, og 6 av dem erstattes av versjons- og variantdata.

Rollen til pseudo-tilfeldig tallgenerator i den fjerde versjonen er maksimal, og hvis den har en for enkel algoritme, øker risikoen for repetisjoner/kollisjoner betydelig. Til tross for dette er det den fjerde versjonen som er den desidert vanligste og ofte brukt i praksis.

UUID-alternativer

Den unike UUID har blitt foredlet flere ganger etter hvert som datateknologien har utviklet seg, og i dag presenteres den i flere versjoner.

Alternativ 0

Designet for å fungere med eldre Apollo Network Computing System 1.5 1988-formatdatabaser. Dette alternativet er bakoverkompatibelt med dem og er ikke i konflikt med NCS historiske UUID-er.

Alternativ 1 og 2

De brukes til å identifisere moderne datablokker og arrayer, og i kanonisk tekstform skiller de seg ikke fra hverandre, bortsett fra rekkefølgen som variantbitene er skrevet i. Så alternativ 1 bruker big-endian byte-rekkefølge, og alternativ 2 bruker title-endian. Den første er den viktigste, og den andre er reservert for arbeid med tidlige GUID-er fra Microsoft Windows.

Alternativ 3

Ikke i bruk for øyeblikket. Det er en reservert versjon for fremtidig bruk - når mulighetene til de tidligere alternativene er uttømt.

De fleste systemer koder identifikatoren i big-endian, men det finnes unntak. For eksempel bruker marshaling i Microsoft COM/OLE-bibliotekene mixed-endian mens den genererer kode fra title-endian- og big-endian-blokkene. Den første er de tre første komponentene i UUID, og ​​den andre er de to siste.