🌐 NL

🆔 UUID-generator

Genereer Universele Unieke Identifiers (UUID). Maak standaard UUID's voor databasesleutels, API-tokens, sessie-ID's en meer.

Versie-informatie

v1 (Op tijdstempel gebaseerd)
Gebaseerd op MAC-adres en tijdstempel. Op tijd gesorteerd.
v4 (Willekeurig)
Volledig willekeurig. Meest gebruikt.
v7 (Op tijdstempel sorteerbaar)
Op tijdstempel gebaseerde sorteerbare UUID. Meest recente standaard.
GIDS

Meer lezen

01

1. Wat is UUID?

UUID (Universally Unique Identifier) is een 128-bits identificatie die uniciteit garandeert zonder centrale coördinatie. Weergegeven als hexadecimaal in de indeling 8-4-4-4-12 (bijv. 550e8400-e29b-41d4-a716-446655440000), is de kans op duplicaten extreem klein wanneer ze overal ter wereld worden gegenereerd. Wordt gebruikt voor primaire sleutels in databases, sessie-ID's, bestandsnamen, API-tokens en meer. Ook wel GUID (Globally Unique Identifier) genoemd, gedefinieerd door de RFC 4122-standaard.

02

2. UUID-versievergelijking

Er zijn 5 UUID-versies, elk met een andere generatiemethode. v1 combineert een MAC-adres en tijdstempel om tijdsvolgorde te garanderen, maar brengt beveiligingsrisico's mee door blootstelling van het MAC-adres. v4 is volledig willekeurig en wordt het meest gebruikt vanwege de hoge onvoorspelbaarheid. v7 is de nieuwste versie, gestandaardiseerd in 2024, op tijdstempel gebaseerd en sorteerbaar, wat gunstig is voor database-indexering. v2 is voor DCE-beveiliging, v3/v5 zijn op naamruimte gebaseerd voor speciale doeleinden.

03

3. UUID-toepassingen

UUID's zijn nuttig in verschillende situaties. In gedistribueerde systemen kunnen unieke ID's worden gegenereerd zonder centrale server, wat uitstekende schaalbaarheid biedt. In databases voorkomt het gebruik van UUID's als primaire sleutels in plaats van auto-increment-ID's samenvoegconflicten. In microservice-architecturen worden ze gebruikt voor het volgen van communicatie tussen services. Ook veel gebruikt om bestandsnaamconflicten bij uploads te voorkomen, voor het genereren van tijdelijke tokens, event-tracking en logcorrelatieanalyse.

04

4. v1 vs v4 vs v7 kiezen

De keuze voor een UUID-versie hangt af van de vereisten. Kies v1 als tijdsvolgorde belangrijk is en blootstelling van het MAC-adres acceptabel is. MAC-adressen kunnen echter de generatieplaats onthullen, wat privacyzorgen oplevert. v4 is de beste keuze als beveiliging belangrijk is en volgorde niet nodig is. Volledig willekeurig, onvoorspelbaar en zonder blootstelling van persoonlijke informatie. v7 wordt aanbevolen als je zowel tijdssortering als beveiliging wilt. Sorteren op tijdstempel levert goede databaseprestaties en minder indexfragmentatie op.

05

5. UUID-uniciteitsgarantie

De kans op een UUID-collision is astronomisch klein. Voor v4 zijn 122 bits willekeurig, wat 2^122 = 5.3 x 10^36 mogelijke combinaties oplevert. Zelfs bij het genereren van 1 miljard per seconde zou het 85 jaar duren om een kans van 50% op een collision te bereiken. v1 garandeert op tijd gebaseerde uniciteit met een tijdstempel (60 bits) en clock sequence (14 bits), en ruimtelijke uniciteit met een MAC-adres (48 bits). v7 combineert Unix-tijdstempel (48 bits) en willekeurig (74 bits) om zowel tijdsvolgorde als uniciteit te ondersteunen.

06

6. UUID gebruiken in databases

Het gebruik van UUID's als primaire sleutels in databases heeft meerdere voordelen. In gedistribueerde omgevingen kan elke node zelfstandig ID's maken zonder centrale ID-generator, wat uitstekende schaalbaarheid biedt. Er zijn geen ID-conflicten bij het samenvoegen van data, en sequentieel raden is onmogelijk wanneer ID's via URL's worden blootgesteld, wat beveiligingsvoordelen biedt. Er zijn echter ook nadelen. Ze nemen 16 bytes in beslag, meer dan integers (4-8 bytes), en de willekeur van v4 kan de indexprestaties verslechteren. In zulke gevallen verbetert het gebruik van v7 met op tijd gesorteerde ordening de prestaties van B-tree-indexen.

Veelgestelde vragen

Moet ik UUID v1, v4 of v7 kiezen?
Kies v4 als beveiliging belangrijk is en volgorde niet nodig is, of v7 als je tijdssortering en betere database-indexprestaties wilt. v1 onthult het MAC-adres, wat privacyzorgen oplevert, dus wordt het niet aanbevolen tenzij je daar een specifieke reden voor hebt.
Bestaat er kans dat UUID's botsen?
Bij v4 zijn er 2^122 mogelijke combinaties — zelfs bij 1 miljard per seconde zou het 85 jaar duren om een kans van 50% op een collision te bereiken. In de praktijk zijn collisions geen reëel probleem.
Kan ik meerdere UUID's tegelijk genereren?
Ja, je kunt het aantal opgeven en er tot 100 tegelijk genereren, en daarna "Alles kopiëren" gebruiken om ze samen op te halen.
Kan ik UUID's als primaire sleutels in databases gebruiken?
Ja. Hiermee kunnen gedistribueerde systemen unieke ID's maken zonder centrale coördinatie, al kan de willekeur van v4 indexfragmentatie veroorzaken - gebruik v7 als je sortering op tijdstempel nodig hebt.
Zijn UUID en GUID hetzelfde?
Ja, GUID (Globally Unique Identifier) is de Microsoft-naam voor in wezen hetzelfde concept, beide volgens de RFC 4122-standaard.