UUID v4 uitgelegd
UUID v4 is de meest gebruikte versie. Afgezien van de 6 bits voor het versie- en variantnummer komen alle 122 bits uit een cryptografische randombron. Er zit dus geen tijd, geen hardwareadres en geen andere afleidbare informatie in.
Omdat er niets identificerends in staat, verraadt een v4 niets over het moment van genereren of over de machine. De keerzijde is dat je er niet op kunt sorteren: voor een databasesleutel kies je meestal v7.
Hoe het werkt
- Kies v4 (op deze pagina al geselecteerd).
- Stel indien nodig het aantal in, maximaal 1000.
- Klik op UUID genereren of gebruik Ctrl + Enter.
- Neem het resultaat mee met Alles kopiëren of de downloadknoppen.
Waarvoor je het gebruikt
- Primaire sleutels en unieke identificaties in gedistribueerde systemen.
- Resource-ID's in API's, request-ID's voor tracing en sessiekenmerken.
- Overal waar sorteren niet nodig is en tijdinformatie verborgen moet blijven.
Structuur
Het dertiende hexadecimale teken is het versienummer (4) en het zeventiende het variantnummer (8, 9, a of b). De overige dertig hexadecimale tekens zijn random.
Waar UUID v4 past
| Optie | Wanneer gebruiken |
|---|---|
v4 | Puur random en de standaardkeuze |
v7 | Beter voor geïndexeerde kolommen, waarden blijven achteraan in de index |
v1 | Verraadt tijd en node, alleen voor bestaande systemen |
Overzicht van alle UUID-versies
| Versie | Sorteerbaar | Herkomst van de bits | Waarvoor het past |
|---|---|---|---|
| v1 | Nee | Tijdstempel + MAC-adres | Bestaande systemen die v1 verwachten |
| v3 | Nee | MD5-hash van de naam | Deterministische ID's als MD5 verplicht is |
| v4 | Nee | 122 random bits | Vrijwel elke gewone unieke identificatie |
| v5 | Nee | SHA-1-hash van de naam | Als dezelfde naam altijd dezelfde ID moet geven |
| v6 | Ja | Herschikte tijdstempel | Als je zowel randomheid als sortering wilt |
| v7 | Ja | Unix-tijd in milliseconden | Primaire sleutels en gebeurtenis-ID's |
| v8 | Nee | Zelfgekozen bitindeling | Eigen formaten en experimenten |
Alle zeven versies zijn 128 bits en gebruiken dezelfde notatie 8-4-4-4-12. Het verschil zit alleen in wat elk bit voorstelt.
Codevoorbeelden
javascript
// Browser en Node 18+
const id = crypto.randomUUID();
python
import uuid
id = str(uuid.uuid4())
java
String id = java.util.UUID.randomUUID().toString();
csharp
var id = Guid.NewGuid().ToString();
sql
-- PostgreSQL 13+
SELECT gen_random_uuid();
Veelgestelde vragen
Kan een v4 dubbel voorkomen?
Het aantal combinaties van 122 random bits is 2122, ongeveer 5,3 × 1036. Om op 50% kans te komen moet je zo'n 2,7 × 1018 waarden genereren; zelfs bij een miljard per seconde duurt dat miljarden jaren.
Is v4 veilig?
Ja, zolang de randombron betrouwbaar is. Deze pagina gebruikt de Web Crypto API van je browser (crypto.getRandomValues), precies wat RFC 4122 voor v4 voorschrijft.
Kun je op v4 sorteren?
Nee. De bits liggen willekeurig verspreid, dus alfabetisch sorteren komt niet overeen met de volgorde van genereren. Gebruik v7 als je sorteerbare identificaties nodig hebt.