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