Wat is UUID (Universal Unique Identifier)?

10 april 2024

Een UUID, of Universal Unique Identifier, is een 128-bits nummer dat wordt gebruikt om gegevens in computersystemen individueel te identificeren. Het is ontworpen om wereldwijd uniek te zijn, waardoor de kans op onbedoelde duplicatie tussen verschillende bestanden wordt geminimaliseerd databanken en systemen, zelfs als deze onafhankelijk opereren. Dit concept is cruciaal voor data-integriteit en consistentie, vooral bij grootschalige implementaties of gedistribueerde computeromgevingen.

Wat is UUID?

UUID is een gestandaardiseerde 128-beetje formaat voor tekenreeks-ID's dat uniekheid tussen verschillende systemen en databases garandeert. Dit formaat wordt vaak gebruikt in software ontwikkeling om unieke identificatiegegevens toe te wijzen zonder dat er significante centrale coördinatie nodig is. Stel je een enorme bibliotheek voor met talloze boeken. Elk boek waaraan een unieke UUID is toegewezen, zou gemakkelijk kunnen worden geïdentificeerd en teruggehaald, ongeacht de locatie op een plank of als het naar een andere bibliotheek wordt overgebracht.

UUID versus OID

Hoewel UUID's en Object Identifiers (OID's) unieke identificatiegegevens bieden, verschillen ze qua structuur en gebruik.

UUID's zijn 128-bits identificatiegegevens die worden gegenereerd met behulp van algoritmen die uniciteit garanderen zonder gecentraliseerd beheer. Omdat ze geen centrale autoriteit hebben, zijn ze ideaal voor scenario's waarin coördinatie complex is, zoals softwareontwikkeling en gedistribueerde systemen waarbij een plat, niet-hiërarchisch formaat vereist is.

OID's zijn hiërarchische, door punten gescheiden identificatoren die worden beheerd door registratieautoriteiten en geschikt zijn voor gestructureerde omgevingen zoals netwerkbeheer en telecommunicatie, waar gecentraliseerde controle over naamruimten haalbaar is. OID's volgen een hiërarchisch, toegewezen systeem dat wordt beheerd door organisaties, wat resulteert in een boomachtige structuur. Een OID kan bijvoorbeeld een specifiek bedrijf vertegenwoordigen binnen een grotere branchecategorie.

Hoe werkt UUID?

Specifieke algoritmen creëren UUID's om ervoor te zorgen dat elke ID uniek is. Deze algoritmen kunnen factoren bevatten zoals de huidige tijd, het netwerkadres van de host (MAC-adres), en willekeurige getallen. Deze aanpak, vooral in versie 1 en 4 van de UUID-specificatie, helpt garanderen dat identificatiegegevens uniek zijn voor alle gebruikers en systemen. UUID's van versie 1 maken bijvoorbeeld gebruik van een combinatie van het MAC-adres en de tijdstempel van de machine, wat een hoge mate van uniekheid biedt, maar mogelijk ook enige informatie over de genererende machine onthult. Versie 4-UUID's vertrouwen daarentegen uitsluitend op willekeurige getallen, waardoor ze onvoorspelbaar en anoniem zijn.

Waar wordt UUID voor gebruikt?

Softwareontwikkeling en databasearchitectuur maken gebruik van UUID's om op efficiënte wijze unieke identificatiegegevens aan informatie toe te wijzen zonder noemenswaardige overhead of coördinatie. 

Deze identificatiegegevens worden op verschillende gebieden algemeen gebruikt:

  • Database-items identificeren. Bijvoorbeeld klantgegevens op een e-commerceplatform. Elke record kan een UUID hebben, zodat er geen duplicaten voorkomen.
  • Systeem componenten. Softwaremodules profiteren van unieke identificatiegegevens die door UUID's worden geleverd.
  • Transacties. Het volgen van financiële transacties of gegevensupdates wordt eenvoudiger met UUID's.
  • Synchronisatie tussen gedistribueerde systemen. Wanneer gegevens over meerdere worden gerepliceerd servers zorgen UUID's voor consistentie door een unieke identificatie te garanderen.

UUID's zorgen ervoor dat elk element verschillend is en dat er onmiskenbaar naar verwezen kan worden in verschillende programma's of componenten. Een sociale-mediaplatform kan bijvoorbeeld UUID's gebruiken om individuele gebruikersprofielen, berichten en opmerkingen te identificeren.

UUID-varianten

UUID-varianten weerspiegelen het aanpassingsvermogen van het systeem, elk op maat gemaakt voor specifieke omgevingen en toepassingen.

Hier is een overzicht van UUID-varianten:

  1. DCE-standaard. De overheersende variant, ingesteld door de Distributed Computing Environment (DCE), is geschikt voor een breed spectrum aan toepassingen door gebruik te maken van verschillende generatiemethoden. Het is ontworpen voor robuustheid op gedistribueerde systemen.
  2. NCS-compatibiliteit. Om achterwaartse compatibiliteit met het oudere Network Computing System (NCS) te garanderen, behoudt één variant het NCS UUID-formaat. Dit is van cruciaal belang voor systemen die nog steeds communiceren met op NCS gebaseerde UUID's, hoewel het gebruik ervan in nieuwe systemen beperkt is.
  3. Microsoft GUID's. De GUID's van Microsoft zijn een specifiek geval van UUID's die zijn afgestemd op het Windows-ecosysteem. Hoewel ze vergelijkbaar zijn met DCE-standaard UUID's, kunnen GUID's enigszins variëren, vooral in oudere Microsoft-software, om aan specifieke behoeften binnen Windows-applicaties te voldoen.
  4. Toekomstige varianten. De UUID-specificatie reserveert bits voor toekomstige uitbreiding, waardoor nieuwe varianten kunnen ontstaan ​​naarmate de technologie evolueert. Dit zorgt ervoor dat het UUID-systeem blijft bestaan flexbaar en klaar om nieuwe generatiemethoden toe te passen of zich aan te passen aan nieuwe technologieën.

UUID-versies

Er zijn vijf belangrijke UUID-versies, die elk verschillende methoden gebruiken om uniciteit te garanderen:

  • Versie 1. Gebruikt het MAC-adres van de hostcomputer en de huidige tijdstempel. Hoewel het zeer uniek is, kan het informatie over de genererende machine onthullen.
  • Versie 2. Net als versie 1 bevat het aanvullende informatie voor DCE-beveiliging.
  • Versies 3 en 5. Gegenereerd door hashing een naamruimte-ID (denk aan categorielabel) en een naam (specifiek item binnen die categorie). Versie 3 gebruikt MD5, terwijl versie 5 SHA-1 (hashing-algoritmen) gebruikt. Afhankelijk van het gekozen hash-algoritme bieden deze versies enige aanpassing, maar zijn ze mogelijk niet cryptografisch veilig.
  • Versie 4. Gemaakt met behulp van willekeurige of pseudo-willekeurige getallen. Dit is de meest voorkomende versie vanwege de inherente willekeur en anonimiteit.

UUID-voordelen en nadelen

Wanneer u besluit UUID's in uw systemen te gebruiken, houd dan rekening met zowel hun voordelen als mogelijke nadelen.

voordelen

Dit zijn de voordelen van UUID:

  • Uniciteit en decentralisatie. Het ontwerp van UUID's maakt generatie mogelijk zonder centrale autoriteit, waardoor de kans op duplicatie aanzienlijk wordt verkleind. Dit is van cruciaal belang voor gedistribueerde systemen of scenario's waarin centrale coördinatie onpraktisch of onwenselijk kan zijn.
  • Veelzijdigheid. UUID's kunnen in verschillende toepassingen worden gebruikt toepassingen, waardoor hun bruikbaarheid op verschillende systemen wordt vergroot. Hun gestandaardiseerde formaat garandeert compatibiliteit tussen verschillende softwareomgevingen.

Nadelen

Dit zijn de nadelen van UUID:

  • Grootte en leesbaarheid. De 128-bits grootte van UUID's maakt ze groter en minder gebruiksvriendelijk dan eenvoudiger identificatiemiddelen zoals numerieke ID's. Bovendien is hun formaat (bijvoorbeeld 123e4567-e89b-12d3-a456-426655440000) niet gemakkelijk leesbaar voor mensen. Hoewel dit misschien geen probleem is voor interne systeembewerkingen, kan het lastig zijn voor gebruikersgerichte toepassingen.
  • Potentiële voorspelbaarheid. Bepaalde versies van UUID's kunnen onbedoeld informatie onthullen over wanneer en waar ze zijn gegenereerd, wat in sommige contexten een veiligheids- of privacyrisico met zich meebrengt. Versie 1 UUID's coderen bijvoorbeeld het MAC-adres, dat kan worden gebruikt om het netwerk te identificeren waarmee een apparaat is verbonden. Dit is misschien geen groot probleem voor interne systemen, maar het kan wel een probleem zijn bij het anonimiseren van gegevens of het beschermen van de privacy van gebruikers.

Hoe een UUID genereren?

Het genereren van UUID's is eenvoudig voor verschillende ontwikkelomgevingen met behulp van ingebouwde bibliotheken of externe tools die voor dit doel zijn ontworpen. Python biedt de uuid-bibliotheek, die een eenvoudige methode biedt voor het maken van UUID's in verschillende versies, elk geschikt voor specifieke toepassingen.

Om een ​​UUID te genereren, importeert u normaal gesproken de bibliotheek, selecteert u de gewenste UUID-versiefunctie (bijvoorbeeld uuid4 voor een volledig willekeurige UUID) en roept u deze aan om een ​​unieke identificatie te ontvangen. Met dit proces kunnen ontwikkelaars eenvoudig unieke identificatiegegevens in hun applicaties integreren zonder dat ze diepgaande kennis nodig hebben van de onderliggende generatie-algoritmen.


Nikola
Kosti
Nikola is een doorgewinterde schrijver met een passie voor alles wat met hightech te maken heeft. Na het behalen van een graad in journalistiek en politieke wetenschappen, werkte hij in de telecommunicatie- en onlinebanksector. Schrijft momenteel voor phoenixNAP, hij is gespecialiseerd in het oplossen van complexe vraagstukken over de digitale economie, e-commerce en informatietechnologie.