Qu'est-ce que UUID v7 ?
UUID version 7 est un identifiant de 128 bits (chaîne de 36 caractères) ordonné chronologiquement proposé dans le nouveau projet de spécification UUID. Il se compose de :
- Horodatage Unix : 48 bits de temps Unix avec une précision en millisecondes
- Données aléatoires : 74 bits de données aléatoires
- Bits de version et de variante : 6 bits pour l'identification du format
Exemple de format : 017f22e2-79b0-7cc3-98c4-dc0c0c07398f
Comment fonctionne UUID v7
- Obtenir l'horodatage Unix actuel en millisecondes (48 bits)
- Générer 74 bits de données aléatoires cryptographiquement fortes
- Définir les bits de version à 0111 (version 7)
- Définir les bits de variante à 10 (norme RFC 4122)
- 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 UUID v7
Bits | Contenu |
---|---|
0-47 | Horodatage Unix (millisecondes) |
48-51 | Version (0111 pour v7) |
52-63 | Données aléatoires |
64-65 | Variante (10 pour RFC4122) |
66-127 | Données aléatoires |
UUID v7 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éordonné) | IDs triables | ⚠️ Révèle MAC |
UUID v7 | Temps + aléatoire | IDs triables | ✅ Privé |
Cas d'utilisation courants
- Clés primaires de base de données : Index efficaces
- Systèmes distribués : Ordonnés par temps sans coordination
- Applications modernes : Identifiants axés sur la confidentialité
- Microservices : IDs triables entre services
- Event sourcing : IDs d'événements chronologiques
- Entrepôts de données : IDs d'analyse ordonnés par temps
Questions fréquemment posées
Quel est l'avantage de UUID v7 par rapport à v1 ou v6 ?
UUID v7 utilise des millisecondes d'horodatage Unix et des données aléatoires plutôt que des adresses MAC, offrant une protection de la confidentialité tout en maintenant la possibilité de tri par heure de génération.
UUID v7 est-il une norme officielle ?
UUID v7 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 v7 ?
Oui. L'horodatage Unix en millisecondes peut être extrait des 48 premiers bits et converti en un format de date et heure standard.
Les UUIDs v7 sont-ils triables par heure de création ?
Oui. UUID v7 est conçu pour être triable lexicographiquement, avec l'horodatage Unix dans les bits les plus significatifs, permettant une comparaison directe des chaînes pour correspondre à l'ordre chronologique.
UUID v7 expose-t-il des informations système ?
Non. Contrairement à v1/v6, UUID v7 n'utilise pas d'adresses MAC. Il combine horodatage et données aléatoires, protégeant la confidentialité tout en maintenant la capacité de tri.