Deterministische UUID v5-waarden genereren
Een UUID van versie 5 wordt met SHA-1 afgeleid van een naamruimte-UUID en een naam. Wie dezelfde naamruimte en dezelfde naam hasht, krijgt precies dezelfde UUID, zodat ID's opnieuw berekend kunnen worden in plaats van opgeslagen.
Uitgewerkt voorbeeld
- Naamruimte (UUID)
- DNS (6ba7b810-9dad-11d1-80b4-00c04fd430c8)
- Naam
- example.com
- Resultaat
- cfbff0d1-9375-5685-968c-48ce8b15ae17
- Naamruimte (UUID)
- DNS (6ba7b810-9dad-11d1-80b4-00c04fd430c8)
- Naam
- Example.com
- Resultaat
- a1feb884-07f5-5a14-8edb-cb659a7fbadc
Zo werkt het
- De 16 bytes van de naamruimte worden samengevoegd met de UTF-8-bytes van de naam en gehasht met SHA-1. De eerste 16 bytes van de hash vormen de UUID nadat de versie- (5) en variantbits zijn gezet.
- RFC 9562 definieert vooraf naamruimten voor DNS-namen, URL's, ISO-OID's en X.500-distinguished names. Elke eigen UUID kan ook als privénaamruimte dienen.
- Namen worden byte voor byte vergeleken: hoofdletters, spaties en afsluitende schuine strepen veranderen het resultaat, dus normaliseer namen eerst. Omdat de uitkomst voorspelbaar is, gebruik je een v5-UUID nooit als geheim.
Genereer 1-100 UUIDs tegelijk
DNS-naamruimte: 6ba7b810-9dad-11d1-80b4-00c04fd430c8 (standaard)
De te hashen naam (bijv. domeinnaam, e-mail, enz.)
Over UUIDs
UUID v1: Tijdgebaseerde UUIDs die een tijdstempel en het MAC-adres van de computer die de UUID genereert bevatten. Handig wanneer u moet weten wanneer de UUID is gemaakt.
UUID v4: Willekeurig gegenereerde UUIDs. Dit is de meest gebruikte versie en biedt goede uniciteit met minimale informatielekken.
UUID v5: Naamgebaseerde UUIDs met SHA-1-hashing. Met dezelfde naamruimte en naam krijgt u altijd dezelfde UUID. Handig voor deterministische UUID-generatie.