Hoppa till huvudinnehåll

Generera deterministiska UUID v5-värden

En UUID av version 5 härleds med SHA-1 från en namnrymds-UUID och ett namn. Alla som hashar samma namnrymd och samma namn får exakt samma UUID, så ID:n kan räknas om i stället för att lagras.

Genomräknat exempel

Namnrymd (UUID)
DNS (6ba7b810-9dad-11d1-80b4-00c04fd430c8)
Namn
example.com
Resultat
cfbff0d1-9375-5685-968c-48ce8b15ae17
Namnrymd (UUID)
DNS (6ba7b810-9dad-11d1-80b4-00c04fd430c8)
Namn
Example.com
Resultat
a1feb884-07f5-5a14-8edb-cb659a7fbadc

Så fungerar det

  • Namnrymdens 16 byte sätts ihop med namnets UTF-8-byte och hashas med SHA-1. De första 16 byten i hashvärdet blir UUID:n när versions- (5) och variantbitarna har satts.
  • RFC 9562 fördefinierar namnrymder för DNS-namn, URL:er, ISO-OID:er och X.500-distinguished names. Vilken egen UUID som helst kan också fungera som privat namnrymd.
  • Namn jämförs byte för byte: versaler, mellanslag och avslutande snedstreck ändrar resultatet, så normalisera namnen först. Eftersom resultatet är förutsägbart ska en v5-UUID aldrig användas som hemlighet.
UUID-version

Generera 1-100 UUIDs åt gången

DNS-namnrymd: 6ba7b810-9dad-11d1-80b4-00c04fd430c8 (standard)

Namnet att hasha (t.ex. domännamn, e-post, etc.)

Om UUIDs

UUID v1: Tidsbaserade UUIDs som inkluderar en tidsstämpel och MAC-adressen för datorn som genererar UUID:n. Användbart när du behöver veta när UUID:n skapades.

UUID v4: Slumpmässigt genererade UUIDs. Detta är den mest använda versionen och ger god unikhet med minimal informationsläckage.

UUID v5: Namnbaserade UUIDs med SHA-1-hashing. Med samma namnrymd och namn får du alltid samma UUID. Användbart för deterministisk UUID-generering.

Fler UUID-guider