UUID-generator

Tilføj til websted Metainformation

Andre værktøjer

Opret UUID/GUID

Opret UUID/GUID

Universal Unique Identifier (UUID), også kendt som Globally Unique Identifier (GUID), er blevet meget brugt i computersystemer.

Det er en 128-bit kode, der genereres af systemet baseret på variabler og konstanter: aktuel tid, MAC-adresse, SHA-1 hash, MD5 navneområde. Slutresultatet af at generere et UUID, vist som en 32-tegns alfanumerisk kode adskilt af bindestreger, kan virke vilkårligt, men faktisk er det resultatet af komplekse beregninger. En computer "opfinder" således ikke en kode, men danner den ud fra specifikke tekniske størrelser, der er relevante på et givet tidspunkt.

Sandsynligheden for, at det samme UUID vil blive genereret på to forskellige computere på forskellige tidspunkter, har en tendens til nul, hvilket gør det muligt at bruge de resulterende koder til punkt/lokal dataidentifikation uden reference til koordinationscentret. I dag er UUID/GUID allestedsnærværende i både online og offline netværk og fungerer effektivt ikke kun i det globale internetrum, men også i selvstændige computersystemer.

UUID-historik

128-bit UUID-koder blev første gang brugt af det amerikanske firma Apollo Computer i 1980'erne. De var baseret på de simplere 64-bit koder, der blev brugt i Domain/OS og fandt udbredt brug i Open Software Foundations computermiljø.

Med fremkomsten af ​​de første Windows-platforme blev den globalt unikke identifikator generaliseret og standardiseret. Microsoft overtog DCE-designet fra Apollo Computer og registrerede URN-navneområdet i RFC 4122. I 2005 blev sidstnævnte foreslået som en ny standard af IETF, og UUID blev standardiseret inden for ITU.

Tidligere i 2002 blev problemer med systemets ydeevne identificeret ved brug af UUID'er som primære nøgler i lokale databaser. Disse blev rettet i version 4 ved at tilføje et ikke-tilfældigt suffiks baseret på computerens systemtid. Den såkaldte COMB (Combined GUID Time Identifier) ​​tilgang øgede risikoen for kodeduplikering, men forbedrede samtidig ydeevnen markant, når man arbejdede med Microsoft SQL Server.

Med udviklingen af ​​IT-teknologier er den universelle unikke identifikator ophørt med at være et højt specialiseret teknisk værktøj, og i dag kan alle bruge det. Sandsynligheden for gentagelse af de genererede koder er ikke lig med nul, men har tendens til det, og enhver digital information kan identificeres af dem, hvorefter de kan kombineres til enkelte dataarrays med minimal risiko for gentagelse.

UUID-fordele

Generatorer af globale unikke koder kræver ikke centraliseret dataafstemning/synkronisering og er frit tilgængelige for alle brugere. De vigtigste fordele ved UUID omfatter:

  • Minimale risici for "kollision" (gentagelse) af koder. På trods af deres massive brug, er sandsynligheden for gentagelse en tendens til nul.
  • Mulighed for at forbinde forskellige arrays af data ved hjælp af UUID'er som primære (unikke) nøgler.
  • Forenklet distribution af data på tværs af flere spredte servere.
  • Mulighed for at generere koder offline.

Unikke identifikationskoder, skrevet i formatet xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx, gør det muligt for spredte systemer at genkende information uden koordinering fra et enkelt datacenter: med en næsten nul sandsynlighed for fejl/gentagelser. Denne funktion, sammen med brugervenlighed og små krav til computerens ydeevne, gør UUID efterspurgt og uundværlig i en lang række it-industrier og autonome computersystemer.

Universelt unik identifikator

Universelt unik identifikator

UUID'et kan generere koder ved hjælp af forskellige algoritmer og variabler/konstante værdier.

Der er i alt 5 versioner af identifikatoren, der bruger systemets dato/tid og MAC-adresser, DCE-sikkerhedsprotokoller, MD5-hash, SHA-1-hash og navneområde, når det genereres.

I alle tilfælde vises det endelige resultat i formatet xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx (et tal i hexadecimal notation, bestående af små latinske bogstaver og tal, og opdelt med bindestreger i fem blokke: 8-4 -4-4- 12), M står for version, N står for UUID variant.

Således bruger systemet 36 tegn ad gangen (26 bogstaver og 10 tal), så sandsynligheden for at gentage 32-cifrede koder har en tendens til nul, på trods af at de genereres dagligt af millioner af brugere rundt om i verden.

UUID-versioner

Version 1

Den første version af den unikke identifikator, når koden genereres, er baseret på computerens MAC-adresse og dens systemtid, som ændrer dens numeriske værdi 1 gang i sekundet. Genereringsprocessen består af fem faser:

  • De nederste 32 bits information er taget fra UTC-tagget. De konverteres til 8 hexadecimale tegn og fylder 4 bytes.
  • I gennemsnit tages 16 bits information fra den samme UTC-etiket og konverteres til 4 hexadecimale tegn, der optager 2 bytes.
  • De øverste 12 bits information fra UTC-tagget tages og konverteres til yderligere 4 hexadecimale tegn.
  • Yderligere 1-3 bits falder på ursekvensen og reducerer risikoen for kollisioner ved at indføre en grad af tilfældighed/usikkerhed. Systemtiden er enten betinget bremset eller sat tilbage - så to eller flere identifikatorer, der arbejder på samme computer på samme tid, ikke "krydser".
  • De resterende 6 bytes er en konstant værdi, der genereres baseret på enhedens MAC-adresse. Den består af 12 hexadecimale tegn og er 48 bits stor.

Fordi algoritmen for den første version af UUID er uløseligt forbundet med systemtiden, er brugen af ​​ursekvensen obligatorisk. Ellers øges risikoen for at generere de samme koder mange gange - i løbet af den anden, hvor systemtiden "fryser" ved en eller anden værdi.

Version 2

Den anden version er minimalt forskellig fra den første og bruges sjældent i praksis. I stedet for en ursekvens bruger den en systemidentifikator knyttet til brugerdata eller andre unikke værdier, der ikke gentages på andre computere eller gentages meget sjældent. Effekten af ​​tilfældighed i den anden version er minimeret, og den kan bruges til at forbedre sikkerheden i et distribueret computermiljø.

Version 3 og 5

De har meget til fælles: de bruger unikke navne og navne (fra MD5-rummet) til at skabe koder, det vil sige ikke-tilfældige værdier. Kun version 3 bruger en standard hash, mens version 5 bruger en SHA-1 hash. Sådanne identifikatorer er mindre afhængige af tilfældige variable.

Version 4

Genereringen af ​​denne UUID-version er mere end 90 % tilfældig. Den har 6 bits for konstante værdier og 122 for vilkårlige. Implementeringen af ​​algoritmen er, at 128 bits information først genereres tilfældigt, og 6 af dem erstattes af versions- og variantdata.

Pseudo-tilfældige talgeneratorens rolle i den fjerde version er maksimum, og hvis den har en for simpel algoritme, øges risikoen for gentagelser/kollisioner markant. På trods af dette er det den fjerde version, der er langt den mest almindelige og ofte brugt i praksis.

UUID-indstillinger

Det unikke UUID er blevet forfinet flere gange i takt med, at computerteknologien har udviklet sig, og i dag præsenteres det i flere versioner.

Mulighed 0

Designet til at arbejde med ældre Apollo Network Computing System 1.5 1988-formatdatabaser. Denne mulighed er bagudkompatibel med dem og er ikke i konflikt med NCS historiske UUID'er.

Valgmulighed 1 og 2

Bruges til at identificere moderne datablokke og arrays, og i kanonisk tekstform adskiller de sig ikke fra hinanden, bortset fra rækkefølgen for skrivning af variantbits. Så mulighed 1 bruger big-endian byte-rækkefølge, og mulighed 2 bruger title-endian. Den første er den vigtigste, og den anden er reserveret til at arbejde med tidlige GUID'er fra Microsoft Windows.

Mulighed 3

I øjeblikket ikke i brug. Det er en reserveret version til fremtidig brug - når mulighederne for de tidligere muligheder er udtømt.

De fleste systemer koder identifikatoren i big-endian, men der er undtagelser. For eksempel bruger marshaling i Microsoft COM/OLE-bibliotekerne mixed-endian, mens der genereres kode fra title-endian- og big-endian-blokkene. Den første er de første tre komponenter i UUID, og ​​den anden er de sidste to.