5.5. UUID Version 5 (UUID version 5)
5.5. UUID Version 5
UUIDv5 est destiné à générer des UUID à partir de "noms" qui sont tirés et uniques au sein d'un certain "espace de noms", conformément à la section 6.5.
Les valeurs UUIDv5 sont créées en calculant un hachage SHA-1 [FIPS180-4] sur une valeur d'identifiant d'espace de noms donnée (section 6.6) concaténée avec la valeur de nom désiré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, en ordre des octets réseau. Les 128 bits les plus significatifs et les plus à gauche de la valeur SHA-1 sont ensuite utilisés pour remplir tous les 128 bits de la disposition UUID, et les 32 bits restants les moins significatifs et les plus à droite de la sortie SHA-1 sont écartés. La version UUID et la variante 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.4.
Les informations concernant la sélection d'un format canonique de nom désiré au sein d'un espace de noms donné peuvent être trouvées dans la section 6.5 sous le titre "A note on names".
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| sha1_high |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| sha1_high | ver | sha1_mid |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|var| sha1_low |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| sha1_low |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 9: UUIDv5 Field and Bit Layout (Disposition des champs et des bits UUIDv5)
sha1_high: Les 48 premiers bits de la disposition sont remplis avec les 48 bits les plus significatifs et les plus à gauche de la valeur SHA-1 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 0b0101 (5). Occupe les bits 48 à 51 de l'octet 6.
sha1_mid: 12 bits supplémentaires de la disposition composés des 12 bits les moins significatifs et les plus à droite des 16 bits suivant immédiatement sha1_high de la valeur SHA-1 calculée. Occupe les bits 52 à 63 (octets 6-7).
var: Le champ de variante 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.
sha1_low: Les 62 derniers bits de la disposition suivant immédiatement le champ var à remplir avec les bits les moins significatifs et les plus à droite des 64 derniers bits de la sortie SHA-1, avec les 32 bits les plus significatifs et les plus à gauche de la sortie SHA-1 écartés. Occupe les bits 66 à 127 (octets 8-15).