fixmint
NL

UUID v4 of v7: welke kies je, en waarom het uitmaakt

Door · · bijgewerkt 8 november 2026 · 5 min leestijd

Gebruik UUID v4 als je een willekeurige identifier nodig hebt en verder niets. Gebruik UUID v7 als de identifier een databasesleutel wordt, of als je wilt dat ID's op aanmaaktijd sorteren. Beide zijn 128 bits en worden in dezelfde vorm van 36 tekens geschreven, dus het verschil zit in de manier waarop de bits zijn gerangschikt. De UUID-generator hieronder maakt in je browser een van beide versies, één tot 500 tegelijk.

UUID-generatorUnieke ID's nodig voor mijn codeGratis doen

Hoe een UUID eruitziet

Een UUID, of universally unique identifier, is een getal van 128 bits dat wordt geschreven als 32 hexadecimale cijfers in vijf groepen: 8, 4, 4, 4 en 12 cijfers, gescheiden door streepjes. Een voorbeeld is 3f2b8c1e-6d4a-4f7b-9c2e-8a1d5e0b7f63.

Twee delen van het getal liggen vast. Vier bits bevatten de versie, dus de derde groep begint met 4 bij v4 of met 7 bij v7. Twee bits bevatten de variant, dus de vierde groep begint met 8, 9, a of b. De rest bevat de identifier zelf. Door de variant- en versiebits heeft een v4-UUID 122 willekeurige bits, en niet 128.

UUID v4: willekeurig

Een v4-UUID is willekeurig, afgezien van die vaste bits. Zijn 122 willekeurige bits maken een dubbele waarde buitengewoon onwaarschijnlijk. Stel dat je een miljard v4-UUID's genereert. De kans dat er twee gelijk zijn, is ongeveer n kwadraat gedeeld door twee keer het aantal mogelijke waarden, wat neerkomt op ongeveer 10 tot de macht -19. Met andere woorden: botsingen hoef je niet in je ontwerp op te vangen.

Die schatting gaat ervan uit dat de generator zijn bits uit een cryptografische bron van willekeur haalt. Een voorspelbare generator zou die schatting ondermijnen. Deze tool gebruikt de cryptografische bron van willekeur van je browser, via crypto.randomUUID of crypto.getRandomValues.

UUID v7: eerst de tijd

RFC 9562 definieert v7. De eerste 48 bits bevatten de Unix-tijd in milliseconden, dus een ID dat later is gemaakt, heeft een groter eerste deel dan een eerder gemaakt ID. Daarna volgen de versiebits, dan willekeurige bits, de variantbits en nog meer willekeurige bits. Een deel van de willekeurige ruimte kan een teller bevatten, die ervoor zorgt dat ID's in volgorde blijven wanneer er er meerdere binnen dezelfde milliseconde worden gemaakt.

Omdat de tijd vooraan staat, sorteren v7-ID's als tekst, in één consistente schrijfwijze, op aanmaaktijd, tot op de milliseconde. Dat werkt omdat de hexadecimale cijfers een vaste breedte hebben en de tijd in de eerste tekens staat.

De tijd is ook zichtbaar. Wie een v7-UUID leest, kan ongeveer zien wanneer die is gemaakt. Je kunt dat zelf controleren met het veld Inspecteren in de UUID-generator, dat de eerste 48 bits terugzet in een datum en tijd.

Waarom v7 goed past bij databaseindexen

Een databaseindex is meestal een B-tree, een structuur die op sleutel gesorteerd wordt bijgehouden. Als de sleutel willekeurig is, zoals bij v4, komt elke nieuwe rij op een willekeurige plek in de index terecht. De database moet dan naar veel verschillende delen van de index schrijven, wat meer paginasplitsingen en meer cachemissers veroorzaakt. Bij een grote tabel loopt dat werk snel op.

Een v7-sleutel is groter dan vrijwel alle sleutels die al in de index staan, omdat het tijdsdeel groeit. Nieuwe rijen worden dus aan het eind van de index toegevoegd, net zoals bij een automatisch oplopend nummer. Recente indexpagina's blijven in het geheugen en schrijven blijft overzichtelijk. Het verschil is het duidelijkst bij grote tabellen die voortdurend groeien, en in een kleine tabel is het nauwelijks merkbaar.

Kiezen tussen v4 en v7

  • Primaire sleutels in een database, of elke tabel die in de loop van de tijd groeit: v7. De index blijft geordend.
  • Logs, gebeurtenissen of berichten die je vaak op tijd sorteert: v7, omdat de ID zelf de volgorde draagt.
  • Publieke ID's waarvan het aanmaakmoment privé moet blijven: v4. Een v7-ID onthult wanneer die is gemaakt.
  • Veel apparaten met onbetrouwbare klokken: v4 en v7 blijven allebei uniek, omdat de willekeurige bits dat werk doen. Alleen de sorteervolgorde van v7 hangt af van juist ingestelde klokken.

Beide versies zijn standaard, maar oudere bibliotheken kennen mogelijk alleen v4. RFC 4122 beschreef jarenlang de versies 1 tot en met 5. RFC 9562 werd in mei 2024 gepubliceerd, vervangt RFC 4122 en definieert de versies 6, 7 en 8. Controleer of de bibliotheek die je gebruikt v7 ondersteunt voordat je erop vertrouwt.

UUID's opslaan

Een UUID die als tekst is geschreven, beslaat 36 tekens. Zijn 16 bytes kun je in binaire vorm opslaan, wat veel minder ruimte kost. Veel databases hebben daarvoor een eigen UUID-type of een binaire kolom van 16 bytes, en die vergelijkt sneller dan tekst.

Kies één schrijfwijze en houd die aan. Hoofdletters, kleine letters, streepjes en accolades zijn voor een mens dezelfde UUID, maar een database of een tekstvergelijking kan ze als verschillende waarden behandelen. De opties voor hoofdletters, zonder streepjes en met accolades van de generator bestaan voor systemen die die vormen nodig hebben.

Gebruik een UUID nooit als geheim

Een UUID is een identifier, geen wachtwoord, sessietoken of toegangssleutel. Hij is gemaakt om uniek te zijn, niet om onraadbaar te zijn. Een v7-UUID bevat bovendien zijn aanmaaktijd. En identifiers worden gekopieerd in links, logs, e-mails en screenshots, waar iedereen die ze ziet ze kan hergebruiken.

Toegangscontrole hoort op de server thuis. Iemand die een ID kent, mag niet automatisch het record zien of wijzigen waar het naar verwijst. Gebruik voor wachtwoorden, wachtwoordzinnen of tokens een generator die voor geheimen is gemaakt. De wachtwoordgenerator maakt op je apparaat willekeurige wachtwoorden of woordzinnen met veilige willekeur, en schat hun sterkte in. Lees voor achtergrond over waarom lengte en willekeur ertoe doen sterke wachtwoorden en entropie.

De tool gebruiken

  1. Kies versie 4 voor willekeurige ID's, of versie 7 voor ID's die op tijd sorteren.
  2. Stel het aantal in, van 1 tot 500 tegelijk.
  3. Vink hoofdletters, zonder streepjes of accolades aan als je code een bepaalde vorm nodig heeft.
  4. Kopieer ze allemaal, of download de lijst als .txt-bestand.
  5. Plak een UUID onder Inspecteren om de versie, de variant te lezen en, bij v7, de tijd die erin zit.

Snelle antwoorden

Is een v4-UUID uniek? In de praktijk wel. Zijn 122 willekeurige bits maken een dubbele waarde zo onwaarschijnlijk dat je er niet op hoeft te controleren.

Moet ik altijd v7 gebruiken? Niet altijd. Gebruik v7 voor databasesleutels en alles wat op tijd wordt gesorteerd. Gebruik v4 als het aanmaakmoment verborgen moet blijven.

Kan ik een UUID als wachtwoord gebruiken? Nee. Het is een identifier. Gebruik een wachtwoordgenerator voor alles wat geheim moet blijven.

Stuurt de tool de ID's ergens naartoe? Nee. De ID's worden in je browser gemaakt en getoond, en er worden geen gegevens naar een server gestuurd.

Vertaald uit de Engels origineel met hulp van AI.

Reacties

    Nog geen reacties. Wees de eerste.

    Je waardering (optioneel)

    Je e-mail wordt nooit getoond of bewaard.

    Omslag van Open Data for AGI - Why Public, Free, and Open Datasets MatterOpen Data for AGI - Why Public, Free, and Open Datasets Matter

    Waarom publieke, gratis en open datasets de weg naar kunstmatige algemene intelligentie net zo sterk gaan bepalen als algoritmen en rekenkracht.

    $4.99Koop op GumroadIn het Engels