Direct naar de inhoud
test-nummers.nl

UUID GeneratorRandom UUID v4 en GUID genereren

Genereer willekeurige UUID's van versie 4 (GUID) volgens RFC 9562. Kopieer met één klik of genereer tot 10.000 UUID's in bulk, met export naar Excel, CSV en JSON.

FictiefAlle gegenereerde gegevens zijn fictief en alleen bedoeld voor test- en ontwikkelomgevingen. Een willekeurig geldig nummer kan toevallig bestaan: gebruik het nooit als echt gegeven.

Aantal

Wat is een UUID?

Een UUID (Universally Unique Identifier) is een 128-bit identifier die wordt weergegeven als 32 hexadecimale tekens, verdeeld in 5 groepen gescheiden door koppeltekens. Het standaardformaat is xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx, waarbij elke x een willekeurig hexadecimaal teken is (0-9, a-f).

UUID versie 4 (random)

Deze generator produceert UUID v4 identifiers, de meest gebruikte variant. Bij UUID v4 zijn vrijwel alle bits willekeurig gegenereerd, met twee uitzonderingen:

  • Versie-nibble— Het eerste hexadecimale teken van de derde groep is altijd 4, wat aangeeft dat het een versie 4 UUID betreft.
  • Variant-bits— Het eerste teken van de vierde groep is altijd 8, 9, a of b (de variant uit RFC 9562, voorheen RFC 4122).

UUID vs GUID

De termen UUID en GUID (Globally Unique Identifier) worden vaak door elkaar gebruikt. Technisch gezien is GUID de term die Microsoft hanteert voor hetzelfde concept. In de praktijk zijn ze identiek qua formaat en functionaliteit. In .NET en SQL Server wordt de term GUID gebruikt, terwijl in de meeste andere ecosystemen (Java, Python, PostgreSQL) UUID de standaard is.

Veelvoorkomende toepassingen

  • Database primary keys— UUID's voorkomen botsingen bij het mergen van databases of in gedistribueerde systemen.
  • API identifiers— Gebruik UUID's als resource-ID's in REST API's om sequentiele ID's (en daarmee enumeration attacks) te voorkomen.
  • Gedistribueerde systemen— Meerdere nodes kunnen onafhankelijk UUID's genereren zonder centrale coordinatie.
  • Sessie-tokens en correlatie-ID's— Volg requests door microservices met unieke UUID's per transactie.

De dataset generator heeft geen UUID-kolom. Wil je records met een UUID als sleutel, genereer de UUID's dan hier en voeg ze als kolom toe aan een export met BSN nummers en IBAN nummers.

UUID versies vergelijken

Er zijn meerdere UUID versies, elk met een eigen generatie-methode en toepassing. UUID v4 is verreweg de meest gebruikte voor software development.

VersieMethodeToepassing
v1Tijdstempel + MAC-adresLegacy systemen (privacy-risico: bevat MAC-adres)
v3MD5 hash van namespace + naamDeterministische ID op basis van naam
v4Volledig random (cryptografisch)Meest gebruikt — database keys, API IDs
v5SHA-1 hash van namespace + naamZoals v3; RFC 9562 raadt v5 aan boven v3
v7Tijdstempel + random (RFC 9562)Sorteerbaar op aanmaaktijd — gunstig voor database-indexen

UUID v7 is een relatief nieuwe versie (RFC 9562, 2024) die een tijdstempel combineert met random bits. Het voordeel ten opzichte van v4 is dat v7 UUIDs chronologisch sorteerbaar zijn, wat database-indexen ten goede komt bij gebruik als primaire sleutel. Deze generator maakt alleen v4.

UUID genereren in populaire programmeertalen

In de meeste moderne programmeertalen is UUID v4 generatie ingebouwd of beschikbaar via een gangbare bibliotheek:

JavaScript / TypeScript

crypto.randomUUID()

Python

import uuid
uuid.uuid4()

Java

import java.util.UUID;
UUID.randomUUID()

C# / .NET

Guid.NewGuid()

PostgreSQL

SELECT gen_random_uuid();

Go

import "github.com/google/uuid"
uuid.New()

Voor grote aantallen UUID's gebruik je de generator bovenaan deze pagina (tot 10.000 per keer); voor complete testrecords met BSN, IBAN en adres is er de dataset generator.

Verdieping in de kennisbank

Veelgestelde vragen

Wat is een UUID en wat betekent UUID v4?

UUID staat voor Universally Unique Identifier: een 128-bit identifier in het formaat 8-4-4-4-12 hexadecimale tekens, bijvoorbeeld 550e8400-e29b-41d4-a716-446655440000. Bij versie 4 zijn 122 van de 128 bits willekeurig; de overige zes geven versie en variant aan. De actuele specificatie is RFC 9562 (2024), die RFC 4122 vervangt. Een GUID (Globally Unique Identifier) is in de praktijk hetzelfde als een UUID.

Zijn UUIDs gegarandeerd uniek? Kan er een duplicaat ontstaan?

Niet gegarandeerd, maar de kans op een botsing is verwaarloosbaar. Een v4-UUID heeft 2^122 (ongeveer 5,3 × 10^36) mogelijke waarden. Pas na ongeveer 2,7 × 10^18 UUID's is de kans op één botsing 50 %; dat is een miljard UUID's per seconde, 86 jaar lang. Voorwaarde is wel een goede randomgenerator, zoals crypto.randomUUID() in de browser.

Waarvoor worden UUIDs gebruikt in software development?

UUID's worden gebruikt als primaire sleutel in databases (vooral in gedistribueerde systemen), als correlatie-ID om requests door microservices te volgen, als unieke bestandsnaam, als sessie-identifier, als idempotency key voor API-calls en als referentie in event-driven architecturen. Het voordeel: ze kunnen overal worden aangemaakt, zonder centrale database.

Kan ik UUIDs in bulk genereren en exporteren?

Ja. Je kunt tot 10.000 UUID's tegelijk genereren. Ze worden in je browser gemaakt met crypto.randomUUID(), of met crypto.getRandomValues() als die functie niet beschikbaar is. Het resultaat exporteer je naar Excel (.xlsx), CSV of JSON, bijvoorbeeld voor testdatabases, seed data of batchprocessen.

Wat is het verschil tussen UUID en GUID?

Functioneel zijn UUID en GUID gelijk: beide zijn 128-bit identifiers in hetzelfde formaat. GUID is de term uit het Microsoft-ecosysteem (.NET, SQL Server, Azure); UUID is de gangbare term in de rest van de softwarewereld (PostgreSQL, Java, Python). De identifiers van deze generator zijn in beide contexten bruikbaar.

Wat zijn de verschillende UUID versies en welke moet ik gebruiken?

De gangbare versies zijn v1 (tijdstempel + MAC-adres, privacyrisico), v3 (MD5-hash van namespace en naam, deterministisch), v4 (willekeurig, het meest gebruikt), v5 (SHA-1-hash van namespace en naam) en v7 (tijdstempel + willekeurige bits, RFC 9562 uit 2024). Voor de meeste toepassingen volstaat v4; v7 is interessant als je sleutels op aanmaaktijd wilt kunnen sorteren. Deze generator maakt alleen v4.

Hoe genereer ik een UUID in JavaScript, Python en Java?

JavaScript/TypeScript: crypto.randomUUID(). Python: import uuid; uuid.uuid4(). Java: import java.util.UUID; UUID.randomUUID(). C#/.NET: Guid.NewGuid(). PostgreSQL: SELECT gen_random_uuid(). Go: het pakket github.com/google/uuid met uuid.New(). De meeste talen hebben UUID v4 ingebouwd of via een gangbare bibliotheek.

Kan ik UUIDs gebruiken als primaire sleutel in PostgreSQL of MySQL?

Ja. PostgreSQL heeft een eigen uuid-type dat 16 bytes gebruikt. MySQL heeft geen UUID-type; gebruik daar BINARY(16) (met UUID_TO_BIN() en BIN_TO_UUID()) of CHAR(36). Let op de performance: v4-waarden zijn willekeurig, waardoor nieuwe sleutels overal in de index terechtkomen en er meer page splits ontstaan dan bij oplopende getallen. UUID v7 begint met een tijdstempel, zodat nieuwe sleutels achteraan de index komen.

Wat is het verschil tussen UUID v4 en UUID v7?

UUID v4 is volledig willekeurig (122 random bits) en het meest gebruikt. UUID v7 (RFC 9562, 2024) begint met een tijdstempel in milliseconden, gevolgd door willekeurige bits. Voordeel van v7: de sleutels zijn op aanmaaktijd sorteerbaar, wat indexen bij gebruik als primaire sleutel ten goede komt. Nadeel: het aanmaakmoment is uit de UUID af te lezen, wat voor sommige toepassingen een privacyoverweging is.

Hoe sla ik UUIDs op in een database?

Drie opties: (1) een eigen UUID-type: PostgreSQL (uuid), MariaDB 10.7+ (UUID) en SQL Server (uniqueidentifier); MySQL heeft dit niet. (2) CHAR(36): leesbaar als tekst, 36 bytes, overal bruikbaar. (3) BINARY(16): het compactst (16 bytes) en sneller te indexeren, maar niet direct leesbaar. Kies BINARY(16) of een eigen UUID-type voor grote tabellen en CHAR(36) als leesbaarheid belangrijker is.

Gerelateerde tools