Wat is een UUID v4 en hoe werkt deze generator?
Een UUID v4 (Universally Unique Identifier versie 4) is een 128‑bit identificatiecode waarvan 122 bits willekeurig worden gegenereerd. De overige 6 bits zijn gereserveerd voor de versie‑ en variantmarkering, zoals vastgelegd in RFC 4122. De gangbare tekstweergave is een 36‑karakter string in het patroon 8‑4‑4‑4‑12: bijvoorbeeld f47ac10b-58cc-4372-a567-0e02b2c3d479. De koppeltekens vormen vier scheidingstekens, waardoor er 32 hexadecimale cijfers overblijven. De generator op deze pagina produceert dergelijke UUID v4’s direct in uw browser met behulp van de cryptografisch veilige crypto.getRandomValues()‑methode. Alle bewerkingen vinden lokaal plaats; er wordt geen enkele gegevens naar een server gestuurd. U kunt het aantal opgegeven ID’s instellen van 1 tot en met 100 en de uitvoer naar wens laten weergeven in kleine letters of hoofdletters, met of zonder koppeltekens. De standaarduitvoer is kleine letters met koppeltekens.
De pagina onderscheidt zich doordat de generator puur op willekeurigheid is gebaseerd en geen tijdstempel bevat. UUID v4 sorteert dus arbitrair, in tegenstelling tot UUID v7 of ULID die een tijdcomponent meenemen. Dit heeft consequenties voor het gebruik in databases, maar is juist gewenst wanneer onvoorspelbaarheid essentieel is.
De unieke eigenschappen van deze pagina
Wat deze pagina anders maakt dan een simpele UUID‑generator, zijn de specifieke aanpassingsmogelijkheden en de directe respons op elke wijziging.
- Aantal: u kiest een getal tussen 1 en 100. Wijzigt u het aantal, dan worden alle ID’s onmiddellijk opnieuw gegenereerd met nieuwe willekeurige bits.
- Hoofdletters: standaard uit. Zet u de schakelaar om, dan worden alle 32 hexadecimale cijfers (en de vier koppeltekens) in hoofdletters getoond, bijvoorbeeld
F47AC10B-58CC-4372-A567-0E02B2C3D479. - Koppeltekens: standaard aan. Zet u ze uit, dan verdwijnen de streepjes en krijgt u een compacte reeks van 32 hexadecimale karakters, zoals
f47ac10b58cc4372a5670e02b2c3d479.
Deze opties zijn exclusief van toepassing op UUID v4. Wanneer u overschakelt naar een ander formaat (UUID v7, ULID of NanoID), veranderen de beschikbare schakelaars – een detail dat de fact sheet duidelijk maakt, maar dat voor deze pagina niet relevant is. Het voornaamste punt is dat elke parameterwijziging de volledige set opnieuw genereert. De statusbalk toont “Gereed.” bij het laden, “Gegenereerd.” na een succesvolle generatie en “Alles gekopieerd!” nadat u alle ID’s naar het klembord hebt gekopieerd.
Het effect van toggles op de uitvoer
Hoewel de onderliggende 122 willekeurige bits identiek blijven, beïnvloeden de toggles de leesbaarheid en het gebruik van de ID’s.
Hoofdletters versus kleine letters: UUID v4 wordt in RFC 4122 doorgaans in kleine letters weergegeven, maar hoofdletters zijn ook geldig. Veel systemen accepteren beide, maar sommige databases of configuratiebestanden vereisen een specifieke casing. Door de toggle kunt u snel schakelen zonder handmatige conversie.
Koppeltekens aan of uit: Het standaardformaat met koppeltekens is – xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx – waarbij de ‘4’ de vaste versie‑aanduiding is en de ‘y’ de variantbits (8, 9, a of b) bevat. Zonder koppeltekens wordt een aaneengesloten hexadecimale string van 32 tekens gebruikt. Dit is handig wanneer een systeem geen koppeltekens toestaat, bijvoorbeeld in bestandsnamen of URL’s. Let op: de willekeurigheid blijft gelijk; het is alleen een presentatiekeuze.
Een nadeel van het weglaten van koppeltekens is dat de UUID lastiger te controleren is op het juiste patroon. De generator controleert niet of de omzetting correct is; het is uw verantwoordelijkheid om te weten of de ontvangende partij alleen hexadecimale cijfers verwacht.
Kans op botsingen en de kwaliteit van willekeurigheid
De kans dat twee UUID v4’s identiek zijn, is buitengewoon klein. Met 122 vrije willekeurige bits zijn er 2^122 mogelijke waarden – dat is ongeveer 5,3 × 10^36. De kans op ten minste één botsing bij het genereren van n UUID’s wordt benaderd door de formule voor de verjaardagsparadox:
p(n) ≈ 1 - e^(-(n(n-1)) / (2 · 2¹²²))
Zelfs bij 1 miljard gegenereerde ID’s (n = 10^9) blijft de kans kleiner dan 10^-17. In de praktijk mag u voor vrijwel elk project aannemen dat botsingen niet optreden.
De willekeurigheid wordt verkregen uit crypto.getRandomValues(), een cryptografisch sterke pseudo‑willekeurige generator (CSPRNG) die door de browser wordt geleverd. Deze gebruikt systeembronnen zoals muisbewegingen, netwerkverkeer en hardware‑ruis om een onvoorspelbare stroom bits te genereren. Dit is aanzienlijk betrouwbaarder dan Math.random(), dat niet cryptografisch veilig is. Gebruik van CSPRNG is essentieel voor beveiligingsgevoelige toepassingen zoals sessietokens, wachtwoordresets of API‑sleutels.
UUID v4 in de praktijk: gebruik en valkuilen
UUID v4 is ideaal wanneer u unieke, onvoorspelbare identificaties nodig hebt zonder chronologische ordening. Typische toepassingen zijn:
- Beveiligingstokens – bijvoorbeeld CSRF‑tokens, sessie‑ID’s, of autorisatiecodes. De onvoorspelbaarheid maakt het vrijwel onmogelijk om een geldig token te raden.
- Anonieme sleutels – in datasets waarin u personen of objecten wilt identificeren zonder hun volgorde prijs te geven.
- Testdata – bij het vullen van een database met realistische, niet‑sequentiëre ID’s.
Valkuil: database‑indexfragmentatie. Omdat UUID v4 willekeurig is, worden nieuwe rijen niet aan het einde van een B‑tree‑index toegevoegd, maar op willekeurige posities. Dit leidt tot page splits, fragmentatie en tragere schrijfbewerkingen. Bij grote tabellen kan dit een meetbaar prestatieverlies geven. Daarom kiezen veel ontwerpers voor UUID v7 of ULID, die een tijdstempel bevatten en monotoon oplopen. De fact sheet maakt duidelijk dat deze generator ook v7 en ULID aanbiedt, maar voor deze pagina (UUID v4) is het belangrijk dat u de afweging begrijpt: onvoorspelbaarheid versus sorteerbaarheid.
Een ander veelgemaakt misverstand is dat UUID v4 128 bits willekeurig zou zijn. In werkelijkheid zijn 6 bits vastgelegd: 4 bits voor versie (vast op 0100, dus hex 4) en 2 bits voor de variant (meestal 10, dus de eerste hex van het negende octet is 8, 9, a of b). De term “122 bits willekeurig” is exact en belangrijk voor botsingsberekeningen.
Hoe de generator omgaat met randgevallen en limieten
De generator accepteert alleen een aantal tussen 1 en 100. Bij een ongeldige invoer wordt geen UUID gegenereerd. De interface voorkomt dat u getallen buiten dit bereik invoert, maar mocht dat onverhoopt lukken, dan blijft de status “Gereed.” staan.
Wijzigt u het formaat van UUID v4 naar een ander type, dan verdwijnen de toggles voor hoofdletters en koppeltekens. Dit is logisch omdat die opties bij UUID v7 of ULID een andere betekenis hebben of ontbreken. De fact sheet vermeldt dit expliciet als randvoorwaarde.
Kopiëren werkt per individuele UUID (klik erop) of met de knop “Alles kopiëren”. De statusmelding “Alles gekopieerd!” verschijnt alleen na een succesvolle kopieeractie van alle weergegeven ID’s. Omdat het kopiëren via de Clipboard API verloopt, werkt het in moderne browsers mogelijk niet op http‑pagina’s zonder beveiligde context. De generator is ontworpen om lokaal te draaien, dus dat is geen probleem.
Veelgestelde vragen over UUID v4
Is een UUID v4 gegarandeerd uniek? Nee, geen enkel random proces garandeert absolute uniciteit. De kans op een botsing is echter verwaarloosbaar klein voor praktische aantallen. Met 122 willekeurige bits is het astronomisch onwaarschijnlijk dat u in één mensenleven een duplicaat tegenkomt.
Kan ik UUID v4 gebruiken als primaire sleutel in een database? Ja, maar wees u bewust van indexfragmentatie. Overweeg UUID v7 of ULID als u tijdorde belangrijk vindt. Voor kleine tabellen (enkele duizenden rijen) is de fragmentatie meestal verwaarloosbaar.
Waarom is UUID v4 niet 128 bits random? RFC 4122 reserveert 4 bits voor de versie (vast op 4) en 2 bits voor de variant. Daardoor blijven 122 bits over die vrij willekeurig zijn. De overige 6 bits zijn voorspelbaar.
Verandert het wijzigen van hoofdletters of koppeltekens de inhoud van de UUID?
Nee, de onderliggende 128 bits blijven ongewijzigd. Alleen de presentatie verandert. Zowel f47ac10b... als F47AC10B... stellen dezelfde identifier voor.
Is de generator veilig voor productietokens? Ja, mits u de browseromgeving vertrouwt. De willekeurige bits worden gegenereerd met cryptografische methoden en verlaten nooit uw computer. Voor tokens die u op een server gebruikt, kunt u beter de server zelf UUID’s laten genereren.
Waarom toont de pagina statusmeldingen zoals “Gegenereerd.” en “Alles gekopieerd!”? Die meldingen geven directe feedback na elke actie. Ze helpen u te bevestigen dat de generatie of kopieeractie is geslaagd, vooral bij het kopiëren van tientallen ID’s tegelijk.
Kan ik meer dan 100 UUID’s in één keer genereren? Nee, de limiet is 100. Voor grotere aantallen kunt u de generator meerdere keren gebruiken of een script schrijven dat dezelfde methode (crypto.getRandomValues) herhaald aanroept.