5.3. UUID Version 3 (UUID Version 3)
5.3. UUID Version 3
UUIDv3 ist für die Generierung von UUIDs aus Namen gedacht, die aus einem bestimmten Namensraum stammen und darin eindeutig sind, gemäß Abschnitt 6.5.
UUIDv3-Werte werden erstellt, indem ein MD5-Hash [RFC1321] über einen gegebenen Namensraum-ID-Wert (Abschnitt 6.6) berechnet wird, der mit dem gewünschten Namenswert verkettet ist, nachdem beide in eine kanonische Sequenz von Oktetten konvertiert wurden, wie durch die Standards oder Konventionen seines Namensraums definiert, in Netzwerk-Byte-Reihenfolge. Dieser MD5-Wert wird dann verwendet, um alle 128 Bits des UUID-Layouts zu füllen. Die UUID-Version und -Variante ersetzen dann die jeweiligen Bits, wie in den Abschnitten 4.2 und 4.1 definiert. Ein Beispiel für diese Bitsubstitution findet sich in Anhang A.2.
Informationen zur Auswahl eines kanonischen Formats für einen gewünschten Namen innerhalb eines gegebenen Namensraums finden sich in Abschnitt 6.5 unter der Überschrift "A note on names".
Wo möglich, SOLLTE UUIDv5 anstelle von UUIDv3 verwendet werden. Weitere Informationen zu MD5-Sicherheitsüberlegungen finden Sie in [RFC6151].
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| md5_high |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| md5_high | ver | md5_mid |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|var| md5_low |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| md5_low |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Abbildung 7: UUIDv3 Feld- und Bit-Layout
md5_high: Die ersten 48 Bits des Layouts werden mit den signifikantesten, linkesten 48 Bits des berechneten MD5-Werts gefüllt. Belegt Bits 0 bis 47 (Oktette 0-5).
ver: Das 4-Bit-Versionsfeld, wie in Abschnitt 4.2 definiert, auf 0b0011 (3) gesetzt. Belegt Bits 48 bis 51 von Oktett 6.
md5_mid: 12 weitere Bits des Layouts, bestehend aus den am wenigsten signifikanten, rechtesten 12 Bits von 16 Bits unmittelbar nach md5_high aus dem berechneten MD5-Wert. Belegt Bits 52 bis 63 (Oktette 6-7).
var: Das 2-Bit-Variantenfeld, wie in Abschnitt 4.1 definiert, auf 0b10 gesetzt. Belegt Bits 64 und 65 von Oktett 8.
md5_low: Die letzten 62 Bits des Layouts unmittelbar nach dem var-Feld, die mit den am wenigsten signifikanten, rechtesten Bits der letzten 64 Bits des berechneten MD5-Werts gefüllt werden. Belegt Bits 66 bis 127 (Oktette 8-15).