Wat is UUID v5?
UUID versie 5 is een namespace-gebaseerde 128-bit identifier (36-teken string) gedefinieerd in RFC 4122. Het combineert:
- Namespace UUID: Vooraf gedefinieerde of aangepaste UUID om de generatie te begrenzen
- Name: Door gebruiker gedefinieerde tekenreeks binnen de namespace
- SHA-1 hash: Cryptografisch algoritme gebruikt om het resultaat te genereren
Voorbeeldformaat: 2ed6657d-e927-5eb1-9a03-0242ac130003
Hoe UUID v5 werkt
- Selecteer een namespace UUID (vooraf gedefinieerd of aangepast)
- Concateneer de namespace UUID en de naamtekenreeks
- Bereken de SHA-1 hash van de samengevoegde waarde
- Stel versiebits in (0101) en variantbits (10)
- Samenstellen als 32 hexadecimale cijfers met streepjes: 8-4-4-4-12 formaat
Voordelen & Overwegingen
Advantages | Considerations |
---|---|
|
|
UUID v5 Structuur
Bits | Content |
---|---|
0-47 | Eerste 48 bits van SHA-1 hash |
48-51 | Versie (0101 voor v5) |
52-63 | Volgende 12 bits van SHA-1 hash |
64-65 | Variant (10 voor RFC4122) |
66-127 | Overgebleven 62 bits van SHA-1 hash |
UUID v5 versus andere versies
Version | Gebaseerd op | Gebruikssituatie | Privacy |
---|---|---|---|
UUID v1 | Tijd + MAC | Tijdgeordende ID's | ⚠️ Toont MAC |
UUID v3 | Namespace + MD5 | Deterministische ID's | ✅ Privé |
UUID v4 | Random | Veilige willekeurige ID's | ✅ Privé |
UUID v5 | Namespace + SHA-1 | Deterministische ID's | ✅ Privé |
UUID v6 | Tijd (herordend) | Sorteerbare ID's | ⚠️ Toont MAC |
UUID v7 | Tijd + willekeurig | Sorteerbare ID's | ✅ Privé |
Vooraf gedefinieerde Namespaces
Namespace | UUID | Purpose |
---|---|---|
DNS | 6ba7b810-9dad-11d1-80b4-00c04fd430c8 | Voor domeinnamen |
URL | 6ba7b811-9dad-11d1-80b4-00c04fd430c8 | Voor URL's |
OID | 6ba7b812-9dad-11d1-80b4-00c04fd430c8 | Voor ISO OID's |
X.500 DN | 6ba7b814-9dad-11d1-80b4-00c04fd430c8 | Voor X.500 Distinguished Names |
Veelvoorkomende gebruikssituaties
- Content adressering: Consistente ID's voor identieke inhoud
- Gedistribueerde systemen: Genoemde bronnen over systemen heen
- URL-mapping: Omzetten van URL's naar stabiele identifiers
- Configuratiebeheer: Bijhouden van benoemde configuratie-items
- Data deduplicatie: Identificeren van identieke records
- Federation: Consistente cross-systeem identifiers
Veelgestelde vragen
Is UUID v5 beter dan UUID v3?
Ja, voor de meeste gebruikssituaties. UUID v5 gebruikt SHA-1 wat cryptografisch sterker is dan het MD5-algoritme dat in UUID v3 wordt gebruikt. Beide bieden echter deterministische generatie.
Kunnen UUID v5 waarden botsen?
Botsingen zijn theoretisch mogelijk maar in de praktijk uiterst onwaarschijnlijk vanwege de eigenschappen van SHA-1. Het gebruik van verschillende namespaces of naamtekenreeksen elimineert vrijwel het risico op botsingen.
Is SHA-1 veilig genoeg voor UUID v5?
Voor UUID-doeleinden blijft SHA-1 geschikt ondanks zijn cryptografische zwaktes. UUID v5 is niet bedoeld voor beveiligingsdoeleinden maar voor het genereren van consistente identifiers.
Kan ik mijn eigen namespace maken voor UUID v5?
Ja. Hoewel RFC 4122 standaard namespaces definieert (DNS, URL, OID, X.500), kunt u aangepaste namespaces maken met elke geldige UUID, meestal een v4 willekeurige UUID.
Zal dezelfde naam altijd dezelfde UUID v5 genereren?
Ja, maar alleen binnen dezelfde namespace. Dezelfde naam in verschillende namespaces genereert verschillende UUID's, wat een belangrijk kenmerk is voor het organiseren van identifiers.