Aller au contenu principal

5.3. UUID Version 3

5.3. UUID Version 3

UUIDv3 est destiné à générer des UUID à partir de noms tirés d'un espace de noms et uniques au sein de celui-ci, conformément à la Section 6.5.

Les valeurs UUIDv3 sont créées en calculant un hachage MD5 [RFC1321] sur une valeur d'ID d'espace de noms donnée (Section 6.6) concaténée avec la valeur de nom souhaitée après que les deux aient été converties en une séquence canonique d'octets, telle que définie par les normes ou conventions de son espace de noms, dans l'ordre des octets réseau. Cette valeur MD5 est ensuite utilisée pour remplir tous les 128 bits de la disposition UUID. La version et le variant UUID remplacent ensuite les bits respectifs tels que définis par les Sections 4.2 et 4.1. Un exemple de cette substitution de bits peut être trouvé dans l'Annexe A.2.

Les informations concernant la sélection du format canonique d'un nom souhaité dans un espace de noms donné se trouvent dans la Section 6.5 sous le titre "Une note sur les noms".

Dans la mesure du possible, UUIDv5 DEVRAIT être utilisé à la place d'UUIDv3. Pour plus d'informations sur les considérations de sécurité MD5, voir [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 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Figure 7 : Disposition des champs et des bits UUIDv3

Définitions des champs :

md5_high : Les 48 premiers bits de la disposition sont remplis avec les 48 bits les plus significatifs, les plus à gauche, de la valeur MD5 calculée. Occupe les bits 0 à 47 (octets 0-5).

ver : Le champ de version de 4 bits tel que défini par la Section 4.2, défini sur 0b0011 (3). Occupe les bits 48 à 51 de l'octet 6.

md5_mid : 12 bits supplémentaires de la disposition constitués des 12 bits les moins significatifs, les plus à droite, des 16 bits suivant immédiatement md5_high de la valeur MD5 calculée. Occupe les bits 52 à 63 (octets 6-7).

var : Le champ de variant de 2 bits tel que défini par la Section 4.1, défini sur 0b10. Occupe les bits 64 et 65 de l'octet 8.

md5_low : Les 62 derniers bits de la disposition suivant immédiatement le champ var à remplir avec les bits les moins significatifs, les plus à droite, des 64 derniers bits de la valeur MD5 calculée. Occupe les bits 66 à 127 (octets 8-15).