Aller au contenu principal

Générer des UUID v5 déterministes

Un UUID version 5 est dérivé d'un UUID d'espace de noms et d'un nom avec SHA-1. Toute personne qui hache le même espace de noms et le même nom obtient exactement le même UUID : les identifiants peuvent être recalculés au lieu d'être stockés.

Exemple détaillé

Espace de noms (UUID)
DNS (6ba7b810-9dad-11d1-80b4-00c04fd430c8)
Nom
example.com
Résultat
cfbff0d1-9375-5685-968c-48ce8b15ae17
Espace de noms (UUID)
DNS (6ba7b810-9dad-11d1-80b4-00c04fd430c8)
Nom
Example.com
Résultat
a1feb884-07f5-5a14-8edb-cb659a7fbadc

Fonctionnement

  • Les 16 octets de l'espace de noms sont concaténés aux octets UTF-8 du nom, puis hachés avec SHA-1. Les 16 premiers octets de l'empreinte forment l'UUID une fois les bits de version (5) et de variante fixés.
  • La RFC 9562 prédéfinit des espaces de noms pour les noms DNS, les URL, les OID ISO et les noms distinctifs X.500. N'importe quel UUID personnel peut aussi servir d'espace de noms privé.
  • Les noms sont comparés octet par octet : la casse, les espaces et les barres obliques finales changent le résultat, normalisez donc les noms d'abord. Le résultat étant prévisible, n'utilisez jamais un UUID v5 comme secret.
Version UUID

Générez de 1 à 100 UUID à la fois

Espace de noms DNS : 6ba7b810-9dad-11d1-80b4-00c04fd430c8 (par défaut)

Le nom à hacher (par ex., nom de domaine, e-mail, etc.)

À propos des UUID

UUID v1 : UUID basés sur le temps qui incluent un horodatage et l'adresse MAC de l'ordinateur générant l'UUID. Utile lorsque vous devez savoir quand l'UUID a été créé.

UUID v4 : UUID générés aléatoirement. C'est la version la plus couramment utilisée et offre une bonne unicité avec une fuite d'informations minimale.

UUID v5 : UUID basés sur un nom utilisant le hachage SHA-1. Avec le même espace de noms et le même nom, vous obtiendrez toujours le même UUID. Utile pour la génération déterministe d'UUID.

Autres guides UUID