Zum Hauptinhalt springen

Deterministische UUID-v5-Werte erzeugen

Eine UUID der Version 5 wird mit SHA-1 aus einer Namensraum-UUID und einem Namen abgeleitet. Wer denselben Namensraum und denselben Namen hasht, erhält genau dieselbe UUID – IDs lassen sich also neu berechnen statt speichern.

Durchgerechnetes Beispiel

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

So funktioniert es

  • Die 16 Bytes des Namensraums werden mit den UTF-8-Bytes des Namens verbunden und mit SHA-1 gehasht. Die ersten 16 Bytes des Hashwerts bilden die UUID, nachdem Versions- (5) und Variantenbits gesetzt wurden.
  • RFC 9562 definiert Namensräume für DNS-Namen, URLs, ISO-OIDs und X.500-Distinguished-Names. Jede eigene UUID kann außerdem als privater Namensraum dienen.
  • Namen werden Byte für Byte verglichen: Groß-/Kleinschreibung, Leerzeichen und abschließende Schrägstriche ändern das Ergebnis, daher Namen vorher normalisieren. Da das Ergebnis vorhersagbar ist, nie eine v5-UUID als Geheimnis verwenden.
UUID-Version

Generieren Sie 1-100 UUIDs auf einmal

DNS-Namespace: 6ba7b810-9dad-11d1-80b4-00c04fd430c8 (Standard)

Der zu hashende Name (z.B. Domainname, E-Mail usw.)

Über UUIDs

UUID v1: Zeitbasierte UUIDs, die einen Zeitstempel und die MAC-Adresse des Computers enthalten, der die UUID generiert. Nützlich, wenn Sie wissen müssen, wann die UUID erstellt wurde.

UUID v4: Zufällig generierte UUIDs. Dies ist die am häufigsten verwendete Version und bietet gute Eindeutigkeit bei minimaler Informationsleckage.

UUID v5: Namensbasierte UUIDs mit SHA-1-Hashing. Bei gleichem Namespace und Namen erhalten Sie immer die gleiche UUID. Nützlich für deterministische UUID-Generierung.

Weitere UUID-Leitfäden