Ontwikkelaarstools
GUID versus UUID: wat is het verschil?
GUID en UUID noemen meestal dezelfde 128-bit-identifier, maar versie, formaat, volgorde en systeemcontracten zijn nog steeds van belang.
Door Vigneshwaran Vijayakumar, Ontwikkelaar en Uitgever | | Beoordeeld onder de ClockTools redactioneel beleid
Inhoudsopgave
GUID en UUID beschrijven doorgaans hetzelfde soort identificatie: een waarde van 128-bit die is ontworpen om uniek te zijn zonder één centrale teller om het volgende getal te vragen. De woorden komen uit verschillende naamgevingstradities. UUID is de standaardterm, terwijl GUID vooral gebruikelijk is in Microsoft-software en ontwikkelaarstools.
Dat korte antwoord is nuttig, maar het lost niet elke praktische vraag op. Twee identificatiegegevens kunnen het bekende delen 8-4-4-4-12 tekstvorm en gebruiken nog steeds verschillende UUID versies, generatieregels, volgordegedrag of binaire serialisatieconventies. Wanneer een databasekolom, API of applicatie GUID zegt, is de veiligste aanpak het bevestigen van het geaccepteerde formaat en de geaccepteerde versie, in plaats van alleen op het label te vertrouwen.
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?
In het meeste dagelijkse ontwikkelingswerk GUID en UUID zijn uitwisselbare namen voor een 128-bit identificatie. De huidige IETF-standaard, RFC 9562, merkt expliciet op dat UUIDs ook bekend staan als globaal unieke identificatiegegevens. Een waarde als 550e8400-e29b-41d4-a716-446655440000 kan daarom een UUID of een GUID worden genoemd zonder de karakters te wijzigen.
Het belangrijke onderscheid is tussen a naam en een generatie schema. Als u een waarde GUID aanroept, weet u niet of het versie 4, versie 7, een oudere, op tijd gebaseerde versie of een platformspecifieke constructie is. Het noemen ervan een UUID garandeert niet dat een applicatie elke gestandaardiseerde versie accepteert. Het label identificeert het brede gegevenstype; de versie en het omliggende contract identificeren hoe de waarde zich gedraagt.
| Vraag | GUID | UUID |
|---|---|---|
| Typische context | Microsoft API's, .NET, Windows, SQL Server | Internetstandaarden, databases, gedistribueerde systemen, API's |
| Gebruikelijke maat | 128 bits | 128 bits |
| Bekende tekstvorm | 8-4-4-4-12 hexadecimale groepen | 8-4-4-4-12 hexadecimale groepen |
| Geeft de naam een versie aan? | Nee | Nee |
| Kunnen de termen naar dezelfde waarde verwijzen? | Ja | Ja |
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 bleven bestaan omdat software-ecosystemen hun vocabulaire voor compatibiliteit behouden. Een Microsoft API kan een Gids, kan een PostgreSQL-schema een uuid kolom, en een JSON API kan het veld aanroepen Identiteitskaart. Alle drie kunnen dezelfde canonieke tekstwaarde hebben.
Het is niet nodig om elk GUID veld te hernoemen naar UUID alleen vanwege de terminologie. Er is behoefte aan het documenteren van de geaccepteerde versie, of de behuizing ertoe doet, of accolades worden geaccepteerd en hoe de waarde wordt geserialiseerd wanneer deze de systeemgrenzen overschrijdt.
Hoe ziet een UUID eruit?
Het gebruikelijke, voor mensen leesbare formulier bevat 32 hexadecimale cijfers, onderverdeeld in vijf groepen:
```tekst
xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx
```
De groepslengtes zijn 8, 4, 4, 4 en 12. Inclusief vier koppeltekens is de canonieke tekenreeks 36 tekens lang. M geeft de versieknabbel aan in lay-outs die onder de standaard vallen, terwijl bits worden weergegeven door N identificeer de variant. Bijvoorbeeld de 4 binnen 550e8400-e29b-41d4-a716-446655440000 identificeert UUID versie 4.
Hexadecimale behuizing verandert de numerieke waarde niet. A716 en een716 vertegenwoordigen dezelfde bits. Koppeltekens, accolades, a urn:uuid: prefix of een compacte vorm kunnen de door een parser geaccepteerde string wijzigen, maar ze veranderen niet noodzakelijkerwijs de onderliggende identificatie. Dat is één van de redenen waarom ClockTools het genereren scheidt van het formatteren.
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 geordend. De eerste 48 bits dragen een Unix-epoch-tijdstempel in milliseconden, gevolgd door versie-, variant- en willekeurige gegevens. Later gegenereerde waarden worden over het algemeen gesorteerd op eerder gegenereerde waarden. Dit kan vriendelijker zijn voor geordende indexen en logboeken, omdat het minder waarschijnlijk is dat nieuwe records op niet-gerelateerde posities in de sleutelruimte terechtkomen.
Geordende tijd betekent niet dat ze perfect opeenvolgend zijn. Meerdere UUID v7-waarden die binnen dezelfde milliseconde zijn gemaakt, hebben nog steeds aanvullende gegevens nodig om onderscheidend te blijven, en klokgedrag is van belang. Het betekent ook niet dat het geheim is: een v7-waarde geeft door het ontwerp een geschatte aanmaaktijd weer. RFC 9562 bevat de normatieve lay-outs en generatierichtlijnen voor beide versies.
Welke versie moet je kiezen?
Kies de versie die past bij het ontvangende systeem en het gedrag dat u nodig heeft.
| Vereiste | Meestal liever | Waarom |
|---|---|---|
| Brede compatibiliteit met bestaande UUID-bewuste systemen | UUID v4 | Het is volwassen, vertrouwd en algemeen aanvaard |
| Geen informatie over de aanmaaktijd in de ID | UUID v4 | De waarde is willekeurig en niet op tijd geordend |
| Sleutels die grofweg de aanmaaktijd volgen | UUID v7 | Het tijdstempelvoorvoegsel ondersteunt chronologische sortering |
| Voor de bestaande API is expliciet één versie vereist | Vereiste versie | Compatibiliteit gaat boven voorkeur |
| Voor mensen zichtbare korte code | Noch standaard | UUIDs zijn ID's, geen gebruiksvriendelijke bevestigingscodes |
| Verificatietoken of wachtwoordherstelgeheim | Een speciaal beveiligd tokenontwerp | Uniciteit en geheimhouding zijn verschillende eigenschappen |
Wissel niet alleen van versie omdat de ene nieuwer klinkt. Controleer eerst uw databasestuurprogramma, validatiebibliotheek, API-schema en downstream-consumenten. Een validator die jaren geleden is geschreven, kan een geldige v7-waarde afwijzen omdat deze 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 verdient meer zorg. Sommige platform-API's geven historisch gezien GUID velden of byte-arrays weer in een volgorde die afwijkt van de netwerkbytevolgorde die wordt beschreven door moderne UUID-specificaties. Een stringretour kan er correct uitzien, terwijl een onbewerkte retour van 16 bytes dat niet doet. Wanneer systemen binaire UUIDs uitwisselen, documenteer dan de bytevolgorde en test deze aan de hand van een bekende waarde in plaats van aan te nemen dat elke bibliotheek identiek serialiseert.
Gebruik indien mogelijk de canonieke vorm voor URL-querytekenreeksen of padsegmenten. Als een omringende waarde moet ontsnappen, wordt de ClockTools URL-encoder kan de volledige parameter coderen zonder de identificatie zelf te wijzigen.
Hoe moet u GUIDs en UUIDs opslaan?
Geef de voorkeur aan het oorspronkelijke UUID of unieke identificatietype van een database wanneer dit beschikbaar is en wordt ondersteund door uw tooling. Een native type valideert de vorm en slaat de waarde van 128 normaal gesproken compacter op dan een tekstkolom van 36 tekens. Het kan de intentie ook duidelijker maken voor schemalezers.
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 indexgedrag is afhankelijk van de database, de werklast, het invoegpatroon en het indexontwerp. UUID v7 kan de lokaliteit verbeteren voor sommige werkbelastingen met zware primaire sleutels, maar het is geen universele prestatiegarantie. Meet met uw eigen database en realistische data. Bewaar de zakelijke betekenis in aparte kolommen; een identificatie mag een tijdstempel, klantnummer of toegangscontroleregel niet vervangen.
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 gewone, Base64-, Base64URL- of URL-codering wanneer de bestemming dit 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.
Generatie maakt gebruik van de cryptografische willekeurige bron van de browser. UUID v4 stelt de vereiste versie- en variantbits in. UUID v7 combineert de huidige Unix-epoch millisecondewaarde met willekeurige gegevens en de vereiste lay-outbits. De pagina hoeft voor deze bewerkingen geen gegenereerde ID's 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 je vermijden?
De eerste fout is het behandelen van ‘uniek’ als ‘onmogelijk om te botsen’. UUID-ontwerpen maken accidentele botsingen buitengewoon onwaarschijnlijk als ze correct worden gegenereerd, maar software moet nog steeds een uniciteitsbeperking gebruiken waar duplicaten schadelijk zouden zijn. Een kapotte willekeurige bron, gekopieerde armatuur, importfout of applicatiefout kan een duplicaat creëren, zelfs als de wiskunde klopt.
De tweede fout is het gebruik van een UUID als bewijs van autorisatie. Een moeilijk te raden identificatiecode kan toevallige ontdekkingen verminderen, maar geeft op zichzelf geen veilige toestemming. Controleer de toegang van de geverifieerde gebruiker voor elk beveiligd verzoek.
De derde fout is het stilzwijgend veranderen van representatie. Het verwijderen van koppeltekens, het decoderen van Base64 of het converteren naar bytes moet omkeerbaar en getest zijn. Bewaar één canonieke waarde in logboeken, zodat operators deze voor alle services kunnen traceren. Als een parser een ID afwijst, valideer dan de versie en het formaat voordat u een vervanging genereert; Het vervangen van een ID kan verwijzingen die er al naar verwijzen, verbreken.
Veelgestelde vragen
Zijn GUID en UUID hetzelfde?
Meestal wel. Beide termen verwijzen gewoonlijk naar een 128-bit identificatie met dezelfde standaardtekstvorm. UUID is de term in de IETF-standaard, terwijl GUID vooral gebruikelijk is 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 als u een breed compatibele willekeurige ID wilt zonder ingebedde aanmaaktijd. Overweeg v7 als chronologisch sorteren en indexeren van belang zijn, op voorwaarde dat elk ontvangend systeem dit 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 UUIDs?
De GUID Generator voert het genereren, formatteren en valideren lokaal in de browser uit. Het gebruikt de willekeurige cryptografische bron van de browser voor de willekeurige delen van de ondersteunde UUIDs.

