UUID-generator

Lägg till på webbplatsen Metainformation

Andra verktyg

Generera UUID/GUID

Generera UUID/GUID

UUID (Universally Unique Identifier), även känd som Globally Unique Identifier (GUID), har använts flitigt i datorsystem.

Det är en 128-bitars kod som genereras av systemet baserat på variabler och konstanter: aktuell tid, MAC-adress, SHA-1-hash, MD5-namnutrymme. Slutresultatet av att generera ett UUID, som visas som en 32-teckens alfanumerisk kod separerad med bindestreck, kan verka godtyckligt, men i själva verket är det resultatet av komplexa beräkningar. En dator ”uppfinner” alltså inte en kod, utan formar den från specifika tekniska storheter som är relevanta vid en given tidpunkt.

Sannolikheten att samma UUID kommer att genereras på två olika datorer vid olika tidpunkter tenderar att vara noll, vilket gör det möjligt att använda de resulterande koderna för punkt-/lokal dataidentifiering utan referens till koordinationscentret. Idag finns UUID/GUID allestädes närvarande i både online- och offlinenätverk och fungerar effektivt inte bara i det globala internetutrymmet utan även i fristående datorsystem.

UUID-historik

128-bitars UUID-koder användes först av det amerikanska företaget Apollo Computer på 1980-talet. De var baserade på de enklare 64-bitarskoder som användes i Domain/OS och fann utbredd användning i Open Software Foundations datormiljö.

Med tillkomsten av de första Windows-plattformarna generaliserades och standardiserades den globalt unika identifieraren. Microsoft antog DCE-designen från Apollo Computer och registrerade URN-namnområdet i RFC 4122. 2005 föreslogs den senare som en ny standard av IETF, och UUID standardiserades inom ITU.

Tidigare 2002 identifierades systemprestandaproblem när UUID användes som primärnycklar i lokala databaser. Dessa fixades i version 4 genom att lägga till ett icke-slumpmässigt suffix baserat på datorns systemtid. Den så kallade COMB-metoden (Combined GUID Time Identifier) ​​ökade riskerna för kodduplicering, men förbättrade samtidigt prestandan avsevärt när man arbetade med Microsoft SQL Server.

Med utvecklingen av IT-teknik har den universella unika identifieraren upphört att vara ett mycket specialiserat tekniskt verktyg, och idag kan alla använda den. Sannolikheten för upprepning av de genererade koderna är inte lika med noll, men tenderar till det, och all digital information kan identifieras av dem, varefter de kan kombineras till enstaka datamatriser med minimal risk för upprepning.

UUID-fördelar

Generatorer av globala unika koder kräver inte centraliserad dataavstämning/synkronisering och är fritt tillgängliga för alla användare. De främsta fördelarna med UUID inkluderar:

  • Minimala risker för "kollision" (upprepning) av koder. Trots deras massiva användning tenderar sannolikheten för upprepning att vara noll.
  • Möjlighet att sammanfoga olika datamatriser med hjälp av UUID:er som primära (unika) nycklar.
  • Förenklad distribution av data över flera spridda servrar.
  • Möjlighet att generera koder offline.

Unika identifikationskoder, skrivna i formatet xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx, tillåter spridda system att känna igen information utan koordination från ett enda datacenter: med en nästan noll sannolikhet för fel/upprepningar. Denna funktion, tillsammans med användarvänlighet och små krav på datorprestanda, gör UUID efterfrågad och oumbärlig i en mängd olika IT-branscher och autonoma datorsystem.

Universellt unik identifierare

Universellt unik identifierare

UUID kan generera koder med olika algoritmer och variabler/konstanta värden.

Det finns totalt 5 versioner av identifieraren, som använder systemets datum/tid och MAC-adresser, DCE-säkerhetsprotokoll, MD5-hash, SHA-1-hash och namnutrymme när de genereras.

I alla fall visas det slutliga resultatet i formatet xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx (en siffra i hexadecimal notation, som består av latinska gemener och siffror, och delas med bindestreck i fem block: 8-4 -4-4- 12), M står för version, N står för UUID-variant.

Därför använder systemet 36 tecken åt gången (26 bokstäver och 10 siffror), så sannolikheten att upprepa 32-siffriga koder tenderar till noll, trots att de genereras dagligen av miljontals användare runt om i världen.

UUID-versioner

Version 1

Den första versionen av den unika identifieraren, när koden genereras, är baserad på datorns MAC-adress och dess systemtid, som ändrar dess numeriska värde 1 gång per sekund. Genereringsprocessen består av fem steg:

  • De lägre 32 bitarna med information tas från UTC-taggen. De konverteras till 8 hexadecimala tecken och tar upp 4 byte.
  • I genomsnitt 16 bitar information tas från samma UTC-etikett och omvandlas till 4 hexadecimala tecken som upptar 2 byte.
  • De övre 12 bitarna med information från UTC-taggen tas och konverteras till ytterligare fyra hexadecimala tecken.
  • Ytterligare 1-3 bitar faller på klocksekvensen och minskar riskerna för kollisioner genom att införa en viss grad av slumpmässighet/osäkerhet. Systemtiden bromsas antingen villkorligt ned eller sätts tillbaka - så att två eller flera identifierare som arbetar på samma dator samtidigt inte "korsar".
  • De återstående 6 byten är ett konstant värde som genereras baserat på enhetens MAC-adress. Den består av 12 hexadecimala tecken och är 48 bitar stor.

Eftersom algoritmen för den första versionen av UUID är oupplösligt kopplad till systemtiden, är användningen av klocksekvensen obligatorisk. Annars ökar riskerna med att generera samma koder många gånger om - under den andra när systemtiden "fryser" vid ett eller annat värde.

Version 2

Den andra versionen skiljer sig minimalt från den första och används sällan i praktiken. Istället för en klocksekvens använder den en systemidentifierare kopplad till användardata eller andra unika värden som inte upprepas på andra datorer eller som upprepas mycket sällan. Effekten av slumpmässighet i den andra versionen minimeras, och den kan användas för att förbättra säkerheten i en distribuerad datormiljö.

Version 3 och 5

De har mycket gemensamt: de använder unika namn och namn (från MD5-utrymmet) för att skapa koder, det vill säga icke-slumpmässiga värden. Endast version 3 använder en standard-hash, medan version 5 använder en SHA-1-hash. Sådana identifierare är mindre beroende av slumpvariabler.

Version 4

Genereringen av denna UUID-version är mer än 90 % slumpmässig. Den har 6 bitar för konstanta värden och 122 för godtyckliga. Implementeringen av algoritmen är att 128 bitar information först genereras slumpmässigt, och 6 av dem ersätts av versions- och variantdata.

Pseudo-slumptalsgeneratorns roll i den fjärde versionen är den maximala, och om den har en för enkel algoritm ökar riskerna för upprepningar/kollisioner avsevärt. Trots detta är det den fjärde versionen som är den absolut vanligaste och ofta används i praktiken.

UUID-alternativ

Det unika UUID har förfinats flera gånger i takt med att datortekniken har utvecklats, och idag presenteras det i flera versioner.

Alternativ 0

Utformad för att fungera med äldre Apollo Network Computing System 1.5 1988-formatdatabaser. Det här alternativet är bakåtkompatibelt med dem och kommer inte i konflikt med NCS historiska UUID.

Alternativ 1 och 2

Används för att identifiera moderna datablock och arrayer, och i kanonisk textform skiljer de sig inte från varandra, förutom ordningen för att skriva variantbitarna. Så alternativ 1 använder big-endian byte-ordning, och alternativ 2 använder title-endian. Den första är den huvudsakliga, och den andra är reserverad för att arbeta med tidiga GUID:er från Microsoft Windows.

Alternativ 3

Används inte för närvarande. Det är en reserverad version för framtida bruk - när möjligheterna med de tidigare alternativen är uttömda.

De flesta system kodar identifieraren i big-endian, men det finns undantag. Till exempel använder marshaling i Microsoft COM/OLE-biblioteken mixed-endian medan kod genereras från title-endian- och big-endian-blocken. Den första är de tre första komponenterna i UUID och den andra är de två sista.