Qu'est-ce que l'UUID v5 ?
UUID version 5 est un identifiant de 128 bits basé sur un espace de noms (chaîne de 36 caractères) défini dans la RFC 4122. Il combine :
- UUID d'espace de noms : UUID prédéfini ou personnalisé pour délimiter la génération
- Nom : Valeur de chaîne définie par l'utilisateur dans l'espace de noms
- Hash SHA-1 : Algorithme cryptographique utilisé pour générer le résultat
Exemple de format : 2ed6657d-e927-5eb1-9a03-0242ac130003
Comment fonctionne l'UUID v5
- Sélectionner un UUID d'espace de noms (prédéfini ou personnalisé)
- Concaténer l'UUID de l'espace de noms et la chaîne de nom
- Calculer le hash SHA-1 de la valeur concaténée
- Définir les bits de version (0101) et les bits de variante (10)
- Assembler sous forme de 32 chiffres hexadécimaux avec des tirets : format 8-4-4-4-12
Avantages et Considérations
Avantages | Considérations |
---|---|
|
|
Structure de l'UUID v5
Bits | Contenu |
---|---|
0-47 | 48 premiers bits du hash SHA-1 |
48-51 | Version (0101 pour v5) |
52-63 | 12 bits suivants du hash SHA-1 |
64-65 | Variante (10 pour RFC4122) |
66-127 | 62 bits restants du hash SHA-1 |
UUID v5 vs. autres versions
Version | Basé sur | Cas d'utilisation | Confidentialité |
---|---|---|---|
UUID v1 | Temps + MAC | IDs ordonnés par le temps | ⚠️ Révèle MAC |
UUID v3 | Espace de noms + MD5 | IDs déterministes | ✅ Privé |
UUID v4 | Aléatoire | IDs aléatoires sécurisés | ✅ Privé |
UUID v5 | Espace de noms + SHA-1 | IDs déterministes | ✅ Privé |
UUID v6 | Temps (réordonné) | IDs triables | ⚠️ Révèle MAC |
UUID v7 | Temps + aléatoire | IDs triables | ✅ Privé |
Espaces de noms prédéfinis
Espace de noms | UUID | Utilisation |
---|---|---|
DNS | 6ba7b810-9dad-11d1-80b4-00c04fd430c8 | Pour les noms de domaine |
URL | 6ba7b811-9dad-11d1-80b4-00c04fd430c8 | Pour les URLs |
OID | 6ba7b812-9dad-11d1-80b4-00c04fd430c8 | Pour les OIDs ISO |
X.500 DN | 6ba7b814-9dad-11d1-80b4-00c04fd430c8 | Pour les Noms Distingués X.500 |
Cas d'utilisation courants
- Adressage de contenu : IDs cohérents pour un contenu identique
- Systèmes distribués : Ressources nommées entre systèmes
- Mappage d'URLs : Conversion d'URLs en identifiants stables
- Gestion de configuration : Suivi des éléments de configuration nommés
- Déduplication de données : Identification des enregistrements identiques
- Fédération : Identifiants cohérents entre systèmes
Questions fréquentes
L'UUID v5 est-il meilleur que l'UUID v3 ?
Oui, pour la plupart des cas. L'UUID v5 utilise SHA-1, qui est cryptographiquement plus fort que l'algorithme MD5 utilisé dans l'UUID v3. Cependant, les deux fournissent une génération déterministe.
Les valeurs d'UUID v5 peuvent-elles entrer en collision ?
Les collisions sont théoriquement possibles mais extrêmement improbables en pratique grâce aux propriétés de SHA-1. L'utilisation d'espaces de noms ou de chaînes de noms différents élimine pratiquement le risque de collision.
SHA-1 est-il suffisamment sécurisé pour l'UUID v5 ?
Pour les besoins de l'UUID, SHA-1 reste adapté malgré ses faiblesses cryptographiques. L'UUID v5 n'est pas destiné à des fins de sécurité mais à la génération d'identifiants cohérents.
Puis-je créer mon propre espace de noms pour l'UUID v5 ?
Oui. Bien que la RFC 4122 définisse des espaces de noms standard (DNS, URL, OID, X.500), vous pouvez créer des espaces de noms personnalisés en utilisant un UUID valide, généralement un UUID v4 aléatoire.
Le même nom générera-t-il toujours le même UUID v5 ?
Oui, mais uniquement dans le même espace de noms. Le même nom dans des espaces de noms différents générera des UUIDs différents, ce qui est une caractéristique clé pour organiser les identifiants.