Encoders & Utilities

UUID Generator

Genereer UUID v1, v4, v7, NIL of MAX in batch. Toggle voor hoofdletters, accolades of zonder streepjes.

Version

When to use which version

  • v1 — time-based + MAC node. Good when ordering matters and you need debuggable insertion order. Leaks MAC/host info if real MAC is used; we generate a random multicast-bit node so no real hardware is exposed.
  • v4 — random. Default choice. Collision-resistant (2¹²² entropy), good for distributed systems where ordering doesn't matter. Bad for DB primary keys at scale (random order kills B-tree locality).
  • v7 — time-ordered (RFC 9562, 2024). 48-bit Unix-ms timestamp prefix → lexicographically sortable + index-friendly. Recommended for new DB primary keys. Use this if you can.
  • NIL00000000-0000-0000-0000-000000000000. Sentinel/placeholder value.
  • MAX — all-ones UUID (RFC 9562). Useful as "infinity" sentinel paired with NIL.

Over deze tool

UUID Generator zendt 128-bit Universally Unique Identifiers uit conform RFC 9562 (de 2024-update van het oorspronkelijke RFC 4122). Vijf varianten worden ondersteund: v1 (tijd + MAC, voorspelbaar over tijd), v4 (willekeurig — de meest voorkomende), v7 (tijd-geordend willekeurig, de moderne standaard voor database-sleutels), NIL (volledig nul placeholder) en MAX (volledig FF — nuttig als "maximum"-grens in range-queries). Genereer er één of tot 1000 tegelijk.

Alle willekeurigheid komt uit crypto.getRandomValues() — dezelfde browser-CSPRNG die door TLS wordt gebruikt. UUID's herhalen in de praktijk nooit: v4's 122 bits willekeurigheid geven een collision-waarschijnlijkheid die zo laag is dat één miljard per seconde genereren voor 85 jaar ongeveer 50% kans heeft op één collision (de "birthday bound" voor 122 bits). v7 reduceert willekeurigheid tot 74 bits in ruil voor tijd-ordening, wat nog steeds collision-veilig is op elke realistische schaal.

Wanneer gebruikt u deze tool

  • Een sample database-ID voor tests genereren. Sneller dan de generator van uw ORM draaien.
  • De juiste versie kiezen. v7 sorteert op tijd wanneer gebruikt als primaire sleutel — veel beter voor B-tree-indexen dan v4. Gebruik v4 alleen wanneer u actief volgorde wilt verbergen.
  • Fixtures seeden. 100 verschillende UUID's met één klik voor een testdataset.
  • Een UUID-formaat inspecteren. Valideer dat een ontvangen string werkelijk een geldige UUID is en achterhaal welke versie.

Over v7 vs v4

UUID v7 werd in 2024 gestandaardiseerd specifiek om v4's anti-database-vriendelijke willekeurigheid te repareren. v7 heeft de timestamp (48 bits, milliseconde-resolutie) in de hoge bits, dus vers gegenereerde UUID's sorteren lexicaal op aanmaaktijd. Dit houdt een B-tree-index "compact" (nieuwe inserts clusteren aan één kant) in plaats van te verstrooien over pagina's. Voor nieuwe applicaties is v7 de nieuwe standaard; v4 blijft alleen nuttig wanneer u specifiek onraadbaarheid van volgorde wilt.

Veelgestelde vragen

Wat is het verschil tussen v4- en v7-UUID's?

v4 is 122 bits willekeurige data — de volgorde van twee v4-UUID's is betekenisloos. v7 sluit een 48-bit Unix-milliseconde-timestamp in de hoge bits in, dus v7-UUID's die later worden gegenereerd sorteren na die eerder gegenereerd. Voor database primaire sleutels is v7 dramatisch vriendelijker voor B-tree-indexen; v4 verspreidt writes over de hele index en veroorzaakt meer pagina-splits.

Zijn UUID's werkelijk uniek?

Effectief ja. Voor v4, met 122 bits willekeurigheid, zou u ~2,7 × 10^18 UUID's moeten genereren voordat u 50% kans heeft op één collision. De wereld genereert er triljoenen per jaar en collisions zijn geen echt probleem. v7 met 74 willekeurige bits is nog steeds veilig in de orde van ~1,5 × 10^11 per milliseconde. NIL UUID (00000000-...) is de ene uitzondering en is gereserveerd.

Waarom hebben sommige UUID's accolades eromheen?

Een Microsoft-conventie — Windows COM en .NET tonen GUID's vaak als {xxxxxxxx-xxxx-...}. De accolades zijn geen onderdeel van de waarde, slechts decoratief. De meeste andere ecosystemen (Linux, JSON-API's, JavaScript) schrijven UUID's zonder accolades. Onze toggle laat u beide formaten produceren; wissel naar behoefte bij interoperabiliteit met Windows-zware stacks.

Kan ik deze gebruiken als database primaire sleutels?

Ja — UUID's worden breed gebruikt als PK's. Verkies voor nieuwe tabellen v7 (of ULID, een gerelateerd formaat) zodat de index compact blijft. v4 is technisch prima maar veroorzaakt meer schrijfversterking op B-tree-indexen vanwege willekeurige verstrooiing. PostgreSQL, MySQL 8+ en SQLite hebben allemaal native of bijna-native UUID-ondersteuning; in MySQL pre-8, sla op als BINARY(16) voor compactheid.