Ga naar de hoofdinhoud

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.
UUID-versie

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.

Meer UUID-handleidingen