Aperçu des versions d'UUID
Il existe plusieurs versions d'UUID, chacune avec des caractéristiques différentes :
• v1 : Basé sur le temps et l'ID de nœud, ordonné mais peut divulguer des informations
• v3 : Basé sur le nom et l'espace de noms, utilise le hachage MD5
• v4 : Généré de manière totalement aléatoire, version la plus couramment utilisée
• v5 : Basé sur le nom et l'espace de noms, utilise le hachage SHA-1, plus sécurisé que v3
• v6 : Version améliorée de v1, la partie temps est arrangée en big endian, plus adaptée au tri
• v7 : Nouvelle version basée sur l'horodatage Unix, combinant séquencement et aléatoire
Comment choisir la bonne version d'UUID
Choisissez la version la plus appropriée en fonction du scénario d'utilisation :
• Besoin de sécurité : Choisissez v4 (aléatoire) ou v5 (nom basé sur SHA-1)
• Besoin de tri : Choisissez v6 ou v7 (basé sur le temps et facile à trier)
• Besoin de déterminisme : Choisissez v3 ou v5 (même entrée produit la même sortie)
• Besoin de performance : Choisissez v1 (génération rapide)
• Valeurs spéciales : NIL (tout 0) ou MAX (tout F) pour les cas limites
Aléatoire vs Déterministe
UUID v4 est totalement aléatoire, adapté à la plupart des scénarios d'application. v3 et v5 sont déterministes, le même nom et espace de noms génèrent toujours le même UUID, adapté aux cas nécessitant un mappage cohérent. v1, v6 et v7 contiennent des informations temporelles, avec un certain ordre dans des conditions spécifiques.
Temporalité et séquentialité
v1, v6 et v7 contiennent tous des informations temporelles, mais les traitent de différentes manières. v6 améliore les problèmes de tri temporel de v1, v7 utilise l'horodatage Unix pour fournir une séquentialité plus simple. Si vous avez besoin d'UUID triés par heure de génération, v6 et v7 sont de meilleurs choix.
Considérations de sécurité
v1 peut divulguer l'heure de génération et les informations du nœud (adresse MAC). v4 est totalement aléatoire, le meilleur choix pour les scénarios sensibles à la confidentialité. v3 utilise le hachage MD5, moins sécurisé que v5 qui utilise SHA-1. NIL et MAX sont des valeurs fixes, ne doivent pas être utilisées dans des scénarios de sécurité nécessitant une unicité.
Les UUID sont principalement utilisés dans des scénarios nécessitant des identifiants uniques globaux : systèmes distribués, clés primaires de base de données, identifiants de session, noms de fichiers, jetons API, etc. Choisir la bonne version peut optimiser les performances, la sécurité et l'organisation des données.