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.
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.