Qu'est-ce que UUID v6 ?
UUID version 6 est un identifiant de 128 bits (chaîne de 36 caractères) basé sur le temps, proposé comme amélioration de l'UUID v1. Il se compose de :
- Horodatage réorganisé : 60 bits d'horodatage du plus au moins significatif
- Séquence d'horloge : compteur de 14 bits pour les ajustements d'horloge
- ID de nœud : valeur de 48 bits (généralement l'adresse MAC)
Exemple de format : 1eb527d6-e927-6511-9a03-0242ac130003
Comment fonctionne UUID v6
- Calcule l'horodatage actuel (intervalles de 100ns depuis le 15-10-1582)
- Réorganise les bits d'horodatage pour un meilleur tri (bits les plus significatifs d'abord)
- Obtient/incrémente la séquence d'horloge de 14 bits (pour l'unicité si l'horloge recule)
- Obtient l'ID de nœud de 48 bits (généralement à partir de l'adresse MAC)
- Définit les bits de version (0110) et les bits de variante (10)
- Assemble en 32 chiffres hexadécimaux avec des tirets : format 8-4-4-4-12
Avantages et Considérations
Avantages | Considérations |
---|---|
|
|
Structure de l'UUID v6
Bits | Contenu |
---|---|
0-47 | 48 bits supérieurs de l'horodatage |
48-51 | Version (0110 pour v6) |
52-59 | 8 bits inférieurs de l'horodatage |
60-63 | 4 bits supérieurs de l'horodatage |
64-65 | Variante (10 pour RFC4122) |
66-79 | Séquence d'horloge (14 bits) |
80-127 | ID de nœud (48 bits) |
UUID v6 vs. autres versions
Version | Basé sur | Cas d'utilisation | Confidentialité |
---|---|---|---|
UUID v1 | Temps + MAC | IDs ordonnés par 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éorganisé) | IDs triables | ⚠️ Révèle MAC |
UUID v7 | Temps + aléatoire | IDs triables | ✅ Privé |
Cas d'Utilisation Courants
- Clés de base de données triables par temps : Pour le tri chronologique
- Bases de données distribuées : Avec indexation ordonnée par temps
- Entrées de journal : Avec ordre chronologique naturel
- Pistes d'audit : Avec horodatages intégrés
- Files d'attente de messages : Pour traitement basé sur le temps
- Enregistrements de transactions : Avec ordonnancement chronologique
Questions Fréquemment Posées
Quelle est la différence entre UUID v1 et v6 ?
UUID v6 réorganise les bits d'horodatage de l'UUID v1 pour le rendre naturellement triable dans l'ordre lexicographique. Le contenu est identique au v1, simplement réorganisé.
L'UUID v6 est-il une norme officielle ?
UUID v6 est actuellement une spécification en projet dans le document proposé RFC 4122bis. Ce n'est pas encore une norme RFC officielle, mais il est implémenté dans de nombreuses bibliothèques UUID.
Puis-je extraire l'heure de création d'un UUID v6 ?
Oui. Le composant d'horodatage peut être extrait des bits 0-59 et reconverti en une valeur de date et heure.
Les UUID v6 sont-ils triables par heure de création ?
Oui. Contrairement au v1, UUID v6 place les bits d'horodatage dans l'ordre du plus au moins significatif, permettant une comparaison lexicographique (chaîne) correspondant à l'ordre chronologique.
L'UUID v6 expose-t-il mon adresse MAC ?
Par défaut, oui. Comme UUID v1, la plupart des implémentations utilisent l'adresse MAC pour l'ID de nœud. Les implémentations axées sur la confidentialité peuvent utiliser des ID de nœud aléatoires à la place.