UUID-Generator (v4)

Genereer een of meerdere willekeurige versie-4 UUID's in uw browser met de cryptografische randomgenerator — er wordt niets naar een server verzonden.

1.035 weergaven

Wat een v4-UUID Uniek Maakt

Een UUID (Universally Unique Identifier) is een 128-bits getal, gebruikelijk geschreven als 36 tekens verdeeld in 8-4-4-4-12 hexadecimale groepen, zoals f47ac10b-58cc-4372-a567-0e02b2c3d479. Van die 128 bits vult versie 4 — de variant die deze generator produceert — 122 ervan met uitvoer van een cryptografisch veilige generator van willekeurige getallen. De overige 6 bits zijn helemaal niet willekeurig: het zijn vaste markeringen die de UUID identificeren als versie 4 en de "variant" ervan aangeven, waardoor het teken direct na het tweede streepje altijd 4 is, en het eerste teken van de volgende groep altijd 8, 9, a of b is.

122 willekeurige bits is een enorme ruimte: 2^122 mogelijke waarden, ongeveer 5,3×10³⁶. Concreet: als elk apparaat op aarde continu een miljard UUID's per seconde zou genereren, zou het nog steeds tientallen miljarden jaren aan gecombineerde generatie duren voordat de kans op een enkele toevallige duplicaat zelfs maar 50% bereikt. Daarom kunnen gedistribueerde systemen — diensten die op honderden onafhankelijke servers draaien zonder onderlinge coördinatie — elk hun eigen UUID's lokaal aanmaken en erop vertrouwen, zonder een centraal register te raadplegen, dat er nooit twee zullen botsen. Dat is precies het doel van het formaat: unieke identificatie zonder databaseopzoeking.

Genereren gebeurt hier volledig in uw browser met de crypto.randomUUID()-functie van de Web Crypto API — dezelfde cryptografische randombron die browsers gebruiken voor veiligheidsgevoelige bewerkingen. Er wordt niets naar een server gestuurd, er wordt geen seed gelogd, en elke UUID die u genereert staat volledig los van elke andere.

Wat U Moet Weten Voordat U UUID's Gebruikt

v4 is niet de enige versie. v1 en v6 bevatten een tijdstempel en het netwerkadres van de genererende machine, wat ze sorteerbaar maakt maar ook informatie prijsgeeft over wanneer en waar ze zijn aangemaakt. v5 hasht een naam die u opgeeft, en produceert steeds dezelfde UUID voor dezelfde invoer — nuttig wanneer u een deterministische identifier nodig heeft in plaats van een willekeurige. v7, een nieuwere standaard, combineert een tijdstempelprefix met willekeurige bits, wat u zowel uniciteit als natuurlijke chronologische ordening geeft. v4 blijft de juiste standaardkeuze wanneer u simpelweg een willekeurige, niet te raden, botsingsvrije identifier nodig heeft en geen tijd of naam hoeft te coderen.

Eén praktische kanttekening: omdat v4-waarden volledig willekeurig zijn, kan het gebruik ervan als primaire sleutel in een database de invoegprestaties op B-tree-geïndexeerde tabellen schaden, omdat nieuwe rijen op onvoorspelbare posities in de index terechtkomen in plaats van netjes aan één kant te worden toegevoegd. Als invoegdoorvoer op schaal belangrijk is, behoudt een tijdgeordend alternatief zoals UUIDv7 of ULID dezelfde 128-bits uniciteitsgarantie terwijl het index-vriendelijk blijft.

Veelgestelde vragen

Kunnen twee gegenereerde UUID's botsen?

Theoretisch wel, praktisch vrijwel nooit: met 2^122 mogelijkheden geeft het genereren van een miljard UUID's per seconde gedurende 85 jaar ongeveer 50% kans op één botsing. Systemen wereldwijd vertrouwen hierop.

Moet ik UUID's als primaire databasesleutels gebruiken?

Ze blinken uit bij gedistribueerde generatie en niet te raden ID's, maar willekeurige v4's fragmenteren B-tree-indexen. Als invoegprestaties er toe doen, kijk dan naar UUIDv7 (tijdgeordend) of ULID — dezelfde grootte, index-vriendelijk.

Is v4 de enige versie?

Nee — v1/v6 bevatten een tijdstempel en MAC-adres, v5 hasht een naam en produceert altijd hetzelfde resultaat, v7 is een nieuwer formaat dat een tijdstempel combineert met willekeur. v4 blijft de standaardkeuze wanneer u gewoon een willekeurige unieke ID nodig heeft.

Waar dienen de vaste bits in een v4-UUID voor?

Van de 128 bits zijn er slechts 122 willekeurig. De overige 6 zijn gereserveerd om het formaat zelf te markeren — één halve byte is vastgezet om "versie 4" aan te geven, een andere is beperkt tot een kleine set waarden (8, 9, a of b) om de "variant" te markeren. Daarom heeft elke v4-UUID altijd een 4 direct na het tweede streepje, hoeveel u er ook genereert.

Kan ik een UUID gebruiken als beveiligingstoken, zoals een link voor wachtwoordherstel?

Een v4-UUID wordt gegenereerd uit een cryptografisch veilige randombron, dus raden is niet praktisch haalbaar — maar het is ontworpen voor uniciteit, niet voor geheimhouding. Combineer het bij alles wat beveiligingsgevoelig is met een juiste vervaltermijn, eenmalig gebruik en serverzijdige validatie, in plaats van uitsluitend op de UUID te vertrouwen.

Reacties

Nog geen reacties — schrijf de eerste!

Vergelijkbare tools