ClockTools-blog

Ontwikkelaarstools

GUID versus UUID: wat is het verschil?

GUID en UUID zijn meestal namen voor dezelfde 128-bits identificatiecode, maar versie, formaat, sortering en afspraken tussen systemen blijven van belang.

Door , ontwikkelaar en uitgever | | Beoordeeld volgens het redactionele beleid van ClockTools

Uitgelichte afbeelding met een vergelijking van GUID en UUID voor ClockTools
Inhoudsopgave

GUID en UUID duiden meestal hetzelfde soort identificatiecode aan: een waarde van 128 bits die uniek moet zijn zonder bij een centrale teller het volgende nummer op te vragen. De namen komen uit verschillende tradities. UUID is de term uit de standaarden; GUID komt vooral voor in software en ontwikkelaarstools van Microsoft.

Dat korte antwoord is nuttig, maar beantwoordt niet elke praktische vraag. Twee identificatiecodes kunnen dezelfde vertrouwde tekstvorm 8-4-4-4-12 hebben en toch verschillen in UUID-versie, generatieregels, sortering of binaire serialisatie. Als een databasekolom, API of toepassing GUID vermeldt, controleer dan het toegestane formaat en de versie. Vertrouw niet alleen op de naam.

Gebruik de ClockTools GUID Generator wanneer u door de browser gegenereerde UUID v4- of UUID v7-waarden, bulkuitvoer, validatie of exportklare opmaak nodig heeft. De generatie- en validatiestappen worden lokaal in de browser uitgevoerd.

GUID versus UUID: zijn ze hetzelfde?

Bij het meeste dagelijkse ontwikkelwerk zijn GUID en UUID uitwisselbare namen voor een identificatiecode van 128 bits. De huidige IETF-standaard, RFC 9562, vermeldt uitdrukkelijk dat UUID's ook bekendstaan als globally unique identifiers. Een waarde zoals 550e8400-e29b-41d4-a716-446655440000 kan dus UUID of GUID worden genoemd zonder de tekens te veranderen.

Het belangrijkste onderscheid is dat tussen een naam en een generatiemethode. Een waarde een GUID noemen zegt niet of het versie 4, versie 7, een oudere tijdgebaseerde versie of een platformspecifieke constructie is. De naam UUID garandeert evenmin dat een toepassing elke gestandaardiseerde versie accepteert. De naam duidt het algemene gegevenstype aan; de versie en de bijbehorende afspraken bepalen hoe de waarde zich gedraagt.

VraagGUIDUUID
Typische contextMicrosoft API's, .NET, Windows, SQL ServerInternetstandaarden, databases, gedistribueerde systemen, API's
Gebruikelijke omvang128 bits128 bits
Bekende tekstvorm8-4-4-4-12 hexadecimale groepen8-4-4-4-12 hexadecimale groepen
Geeft de naam een versie aan?NeeNee
Kunnen de termen naar dezelfde waarde verwijzen?JaJa

Dit is de reden waarom een vergelijking van GUID versus UUID zich minder zou moeten richten op welk woord "correct" is en meer op de systeemvereisten achter het woord.

Waarom zijn er twee namen?

UUID betekent universeel unieke identificatie. Het is de terminologie die door de IETF-standaarden wordt gebruikt en die de lay-out, varianten, versies, tekstweergave en generatieoverwegingen definieert. GUID betekent wereldwijd unieke identificatie en raakte diep verankerd in Microsoft-platforms. De .NET System.Guid-type is een bekend voorbeeld.

Beide namen blijven bestaan omdat software-ecosystemen hun terminologie behouden voor compatibiliteit. Een Microsoft-API kan een Guid aanbieden, een PostgreSQL-schema kan een uuid-kolom gebruiken en een JSON-API kan het veld id noemen. Alle drie kunnen dezelfde canonieke tekstwaarde bevatten.

U hoeft niet elk GUID-veld om te noemen naar UUID alleen vanwege de terminologie. Wel moet u vastleggen welke versie wordt geaccepteerd, of hoofdletters en kleine letters verschil maken, of accolades zijn toegestaan en hoe de waarde wordt geserialiseerd bij uitwisseling tussen systemen.

Hoe ziet een UUID eruit?

De gebruikelijke, voor mensen leesbare vorm bevat 32 hexadecimale cijfers, verdeeld over vijf groepen:

xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx

De groepen zijn 8, 4, 4, 4 en 12 tekens lang. Met de vier koppeltekens is de canonieke tekenreeks 36 tekens lang. M geeft de versienibble aan in de indelingen die de standaard beschrijft; de bits die N weergeeft, bepalen de variant. Zo duidt de 4 in 550e8400-e29b-41d4-a716-446655440000 op UUID-versie 4.

ClockTools-diagram van de tekstindeling van een 128-bits UUID met het versieveld en variantveld
ClockTools-diagram van de tekstindeling van een 128-bits UUID met het versieveld en variantveld

Hoofdletters en kleine letters veranderen de numerieke waarde van hexadecimale tekens niet. A716 en a716 staan voor dezelfde bits. Koppeltekens, accolades, het prefix urn:uuid: of een compacte vorm kunnen bepalen welke tekenreeks een parser accepteert, maar veranderen niet noodzakelijk de onderliggende identificatiecode. Daarom houdt ClockTools genereren en formatteren gescheiden.

Hoe verschillen UUID v4 en UUID v7?

UUID v4 is de veelgebruikte willekeurige versie. De meeste van de beschikbare bits worden gevuld vanuit een willekeurige of pseudo-willekeurige bron, waarbij de vereiste bits zijn ingesteld voor de versie en variant. Het werkt goed wanneer identificatiegegevens de aanmaakvolgorde niet mogen onthullen en wanneer het genereren onafhankelijk van elkaar plaatsvindt voor veel clients of services.

UUID v7 is op tijd gesorteerd. De eerste 48 bits bevatten een Unix-tijdstempel in milliseconden, gevolgd door versie-, variant- en willekeurige gegevens. Later gegenereerde waarden komen bij het sorteren doorgaans na eerder gegenereerde waarden. Dat kan gunstig zijn voor gesorteerde indexen en logboeken, omdat nieuwe records minder vaak op verspreide posities in de sleutelruimte terechtkomen.

Op tijd gesorteerd betekent niet dat de waarden strikt opeenvolgend zijn. Meerdere UUID v7-waarden die binnen dezelfde milliseconde worden gemaakt, hebben nog steeds aanvullende gegevens nodig om verschillend te blijven. Ook het gedrag van de klok is van belang. De waarden zijn evenmin geheim: een v7-waarde geeft bewust de aanmaaktijd bij benadering prijs. RFC 9562 beschrijft de normatieve indelingen en generatierichtlijnen voor beide versies.

Welke versie moet u kiezen?

Kies de versie die past bij het ontvangende systeem en het gedrag dat u nodig heeft.

VereisteMeestal de beste keuzeWaarom
Brede compatibiliteit met bestaande systemen die UUID's ondersteunenUUID v4Het is volwassen, vertrouwd en algemeen aanvaard
Geen informatie over de aanmaaktijd in de IDUUID v4De waarde is willekeurig en niet op tijd geordend
Sleutels die grofweg de aanmaaktijd volgenUUID v7Het tijdstempelvoorvoegsel ondersteunt chronologische sortering
Voor de bestaande API is expliciet één versie vereistVereiste versieCompatibiliteit gaat boven voorkeur
Voor mensen zichtbare korte codeGeen van beide als standaardkeuzeUUID's zijn identificatiecodes, geen gebruiksvriendelijke bevestigingscodes
Authenticatietoken of geheime waarde voor wachtwoordherstelEen ontwerp dat specifiek voor veilige tokens is bedoeldUniciteit en geheimhouding zijn verschillende eigenschappen

Stap niet over op een andere versie alleen omdat die nieuwer klinkt. Controleer eerst uw databasedriver, validatiebibliotheek, API-schema en de systemen die de waarden vervolgens gebruiken. Een validator van jaren geleden kan een geldige v7-waarde afwijzen omdat hij alleen oudere versies herkent.

Kan dezelfde UUID er anders uitzien?

Ja. Dezelfde onderliggende 128 bits kunnen worden weergegeven in standaard kleine letters, hoofdletters, accolades, tekst tussen aanhalingstekens, compacte hexadecimale of URN-vorm. ClockTools kan gegenereerde waarden ook verpakken als regels, CSV, JSON of SQL-vriendelijke uitvoer. Dit zijn representatiekeuzes, geen nieuwe identificatiegegevens.

Binaire uitwisseling vraagt extra aandacht. Sommige platform-API's geven GUID-velden of byte-arrays van oudsher door in een volgorde die afwijkt van de netwerkbytevolgorde uit moderne UUID-specificaties. Een tekenreeks kan na heen-en-terugconversie correct lijken, terwijl een ruwe waarde van 16 bytes dat niet doet. Leg bij uitwisseling van binaire UUID's de bytevolgorde vast en test met een bekende waarde. Ga er niet van uit dat elke bibliotheek op dezelfde manier serialiseert.

Gebruik waar mogelijk de canonieke vorm in URL-querystrings of padsegmenten. Als een omringende waarde moet worden ge-escaped, kan de ClockTools URL-encoder de volledige parameter coderen zonder de identificatiecode zelf te wijzigen.

Hoe kunt u GUID's en UUID's het beste opslaan?

Gebruik bij voorkeur het ingebouwde UUID-type of type voor unieke identificatiecodes van de database, als dat beschikbaar is en uw tools het ondersteunen. Zo'n type valideert de vorm en slaat een waarde van 128 bits doorgaans compacter op dan een tekstkolom van 36 tekens. Het maakt ook duidelijker voor lezers van het schema waarvoor het veld bedoeld is.

Tekstopslag blijft redelijk als een systeem geen native type heeft of als compatibiliteit een string vereist. Normaliseer in dat geval één representatie, definieer de toegestane lengte en vermijd het combineren van accolades, URN's, hoofdletters en compacte waarden in dezelfde kolom. Consistente opmaak vereenvoudigt gelijkheidscontroles, exports en ondersteunend werk.

Het gedrag van een index hangt af van de database, de werklast, het invoegpatroon en het indexontwerp. UUID v7 kan bij sommige primaire-sleutelwerklasten met veel nieuwe records zorgen dat nieuwe waarden dichter bij elkaar in de index terechtkomen, maar biedt geen algemene prestatiegarantie. Meet dit met uw eigen database en realistische gegevens. Bewaar bedrijfsgegevens in aparte kolommen; een identificatiecode is geen vervanging voor een aanmaaktijdstempel, klantnummer of toegangsregel.

Hoe kan ClockTools deze genereren en valideren?

De online GUID- en UUID-generator biedt een gerichte workflow:

  1. Selecteer UUID v4 voor willekeurige ID's of UUID v7 voor tijdgeordende ID's.
  2. Kies een aantal van 1 tot 1,000.
  3. Selecteer de opmaak standaard, hoofdletters, accolades, aanhalingstekens, compact of URN.
  4. Kies ongecodeerde uitvoer of Base64-, Base64URL- of URL-codering als de bestemming dat vereist.
  5. Exporteer als regels, CSV, JSON of SQL, of kopieer de resultaten rechtstreeks.
  6. Plak een bestaande waarde in de validator om de genormaliseerde vorm, versie, variant en herkende speciale waarden te inspecteren.

Voor het genereren wordt de cryptografische toevalsbron van de browser gebruikt. UUID v4 stelt de vereiste versie- en variantbits in. UUID v7 combineert de huidige Unix-tijd in milliseconden met willekeurige gegevens en de vereiste indelingsbits. Voor deze bewerkingen hoeft de pagina geen gegenereerde identificatiecodes te uploaden.

Wanneer u twee geëxporteerde lijsten vergelijkt, gebruikt u de Tekstverschilcontrole om een ontbrekend, herhaald of opnieuw geformatteerd item op te sporen zonder elke regel handmatig te scannen.

Welke fouten moet u vermijden?

De eerste fout is denken dat 'uniek' betekent dat dubbele waarden onmogelijk zijn. Bij correct gegenereerde UUID's zijn toevallige botsingen buitengewoon onwaarschijnlijk, maar software moet nog steeds een uniciteitsbeperking toepassen waar duplicaten schadelijk zijn. Een defecte toevalsbron, gekopieerde testgegevens, een importfout of een toepassingsfout kan een duplicaat veroorzaken, ook als de wiskunde klopt.

De tweede fout is een UUID gebruiken als bewijs van toegangsrechten. Een moeilijk te raden identificatiecode kan toevallig vinden bemoeilijken, maar verleent op zichzelf geen veilige toegang. Controleer bij elk beschermd verzoek de toegangsrechten van de geauthenticeerde gebruiker.

De derde fout is de weergave ongemerkt veranderen. Het verwijderen van koppeltekens, decoderen van Base64 en omzetten naar bytes moet omkeerbaar en getest zijn. Houd in logboeken één canonieke waarde aan, zodat beheerders die over verschillende diensten heen kunnen volgen. Als een parser een identificatiecode afwijst, valideer dan eerst de versie en het formaat voordat u een vervangende waarde genereert. Een ID vervangen kan bestaande verwijzingen verbreken.

Veelgestelde vragen

Zijn GUID en UUID hetzelfde?

Meestal wel. Beide termen verwijzen doorgaans naar een identificatiecode van 128 bits met dezelfde standaardtekstvorm. UUID is de term uit de IETF-standaarden; GUID komt vooral voor in Microsoft-ecosystemen.

Is een GUID altijd een UUID versie 4?

Nee. Het woord GUID identificeert niet één UUID versie. Een waarde in de vorm van GUID kan versie 4, versie 7, een andere gestandaardiseerde versie of een platformspecifieke generatiemethode gebruiken.

Moet ik UUID v4 of UUID v7 gebruiken?

Gebruik v4 voor een breed compatibele, willekeurige identificatiecode zonder ingebedde aanmaaktijd. Overweeg v7 als chronologische sortering en het dicht bij elkaar opslaan van indexwaarden van belang zijn, mits elk ontvangend systeem deze versie ondersteunt.

Hoeveel tekens bevat een standaard GUID of UUID?

De canonieke tekstvorm heeft 32 hexadecimale cijfers en vier koppeltekens, voor een totaal van 36 tekens. Accolades, URN-voorvoegsels, compacte opmaak of aanhalingstekens kunnen de weergegeven lengte wijzigen.

Kan ik een UUID als geheim token gebruiken?

Ga er niet van uit dat uniciteit geheimhouding oplevert. Authenticatie- en resettokens hebben een ontwerp nodig dat specifiek bedoeld is voor veilige, onvoorspelbare inloggegevens, samen met verval- en autorisatiecontroles.

Uploadt ClockTools gegenereerde UUID's?

De GUID Generator genereert, formatteert en valideert lokaal in de browser. Hij gebruikt de cryptografische toevalsbron van de browser voor de willekeurige delen van de ondersteunde UUID's.

Over de auteur

Vigneshwaran Vijayakumar

Oprichter, ontwikkelaar en uitgever van ClockTools | Digital Marketing Manager | India

Vigneshwaran is een ingenieur met tientallen jaren technische ervaring, waaronder professioneel werk als Digital Marketing Manager in Dubai. Zijn werk verbindt data-analyse, zoekmachineoptimalisatie, conversie-optimalisatie, contentsystemen, visuele productie en toegepaste AI en machine learning. Bij ClockTools zet hij die multidisciplinaire ervaring om in gerichte browserhulpprogramma's en praktische, bronbewuste handleidingen.

LinkedIn-profiel