Générateur d'UUID Version 6 (Horodatation Ordonnée)

Générez des UUID ordonnés par horodatage optimisés pour l'indexation de base de données

Essayez ces exemples :

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

  1. Calcule l'horodatage actuel (intervalles de 100ns depuis le 15-10-1582)
  2. Réorganise les bits d'horodatage pour un meilleur tri (bits les plus significatifs d'abord)
  3. Obtient/incrémente la séquence d'horloge de 14 bits (pour l'unicité si l'horloge recule)
  4. Obtient l'ID de nœud de 48 bits (généralement à partir de l'adresse MAC)
  5. Définit les bits de version (0110) et les bits de variante (10)
  6. Assemble en 32 chiffres hexadécimaux avec des tirets : format 8-4-4-4-12

Avantages et Considérations

AvantagesConsidérations
  • Triable lexicographiquement
  • Temps de création intégré
  • Génération haute performance
  • Génération distribuée
  • Préoccupations de confidentialité liées à l'adresse MAC
  • Problèmes de synchronisation d'horloge
  • Plus prévisible que les UUID aléatoires
  • Statut de spécification en projet

Structure de l'UUID v6

BitsContenu
0-4748 bits supérieurs de l'horodatage
48-51Version (0110 pour v6)
52-598 bits inférieurs de l'horodatage
60-634 bits supérieurs de l'horodatage
64-65Variante (10 pour RFC4122)
66-79Séquence d'horloge (14 bits)
80-127ID de nœud (48 bits)

UUID v6 vs. autres versions

VersionBasé surCas d'utilisationConfidentialité
UUID v1Temps + MACIDs ordonnés par temps⚠️ Révèle MAC
UUID v3Espace de noms + MD5IDs déterministes✅ Privé
UUID v4AléatoireIDs aléatoires sécurisés✅ Privé
UUID v5Espace de noms + SHA-1IDs déterministes✅ Privé
UUID v6Temps (réorganisé)IDs triables⚠️ Révèle MAC
UUID v7Temps + aléatoireIDs 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.

Ressources