Dans cet article
Qu'est-ce qu'un UUID ?
Un UUID (Universally Unique Identifier) est une valeur de 128 bits utilisee pour identifier de maniere unique des informations dans les systemes informatiques. Ecrit sous forme de 32 chiffres hexadecimaux affiches en cinq groupes separes par des tirets, un UUID ressemble a 550e8400-e29b-41d4-a716-446655440000.
Les UUID sont concus pour etre globalement uniques sans necessite d'une autorite d'enregistrement centrale. Cela les rend ideaux pour les systemes distribues ou plusieurs noeuds doivent generer independamment des identifiants qui ne se chevauchent jamais.
Les versions d'UUID expliquees
Le standard UUID definit plusieurs versions, chacune avec une methode de generation differente. Le numero de version apparait comme le 13e caractere (le premier chiffre du troisieme groupe).
- Version 1 (v1) — basee sur le temps : combine l'horodatage actuel avec l'adresse MAC de la machine. Garantit l'unicite mais expose des informations materielles
- Version 3 (v3) — basee sur le nom avec MD5 : genere un UUID deterministe en hachant un espace de noms et un nom avec MD5. La meme entree produit toujours le meme UUID
- Version 4 (v4) — aleatoire : la version la plus utilisee. Tous les bits sauf les champs de version et de variante sont generes aleatoirement
- Version 5 (v5) — basee sur le nom avec SHA-1 : comme la v3 mais utilise SHA-1. Preferee a la v3 pour les nouvelles implementations
- Version 7 (v7) — aleatoire ordonnee par horodatage : un format plus recent combinant un horodatage Unix avec des bits aleatoires, rendant les UUID triables par date de creation
Essayez gratuitement — sans inscription
Valider un UUID →Comment fonctionne la validation d'UUID
Valider un UUID implique de verifier a la fois son format et ses regles structurelles. Un UUID valide doit correspondre au motif hexadecimal canonique 8-4-4-4-12 et satisfaire les contraintes specifiques a la version.
- Verification du format — la chaine doit contenir exactement 32 caracteres hexadecimaux disposes en cinq groupes separes par quatre tirets
- Verification de la version — le 13e caractere doit etre un numero de version valide (1, 2, 3, 4, 5, 6, 7 ou 8)
- Verification de la variante — le 17e caractere doit indiquer la variante RFC 4122 (8, 9, a ou b)
Cas d'utilisation courants
Les UUID constituent le choix par defaut pour les identifiants dans de nombreux domaines du developpement logiciel moderne.
- Cles primaires de base de donnees — les UUID permettent de generer des cles cote client sans aller-retour vers la base, facilitant les insertions distribuees
- Identifiants de ressources API — exposer des UUID au lieu d'entiers sequentiels empeche les attaques par enumeration
- IDs de session et de correlation — les UUID tracent les requetes a travers les microservices, rendant le debogage distribue possible
- Nommage de fichiers et objets — les systemes de stockage cloud utilisent des UUID pour eviter les collisions de noms
Bonnes pratiques
Choisir la bonne version d'UUID et les gerer correctement peut prevenir des bugs subtils et des problemes de performance.
- Utilisez la v4 pour les identifiants aleatoires generaux — c'est le choix le plus courant et sans dependances externes
- Utilisez la v7 quand vous avez besoin d'identifiants triables par date — les UUID v7 se trient chronologiquement
- Stockez les UUID en binaire 16 octets dans les bases de donnees plutot qu'en chaines de 36 caracteres
- Validez toujours les UUID recus de sources externes — ne supposez jamais que les chaines fournies sont bien formees
Questions frequemment posees
Deux UUID peuvent-ils etre identiques ?
Bien que theoriquement possible, la probabilite de collision avec des UUID v4 est astronomiquement faible. Il faudrait generer environ 2,7 quintillions d'UUID pour avoir 50 pour cent de chance d'une seule collision.
Un UUID est-il sensible a la casse ?
Non. Le standard RFC 4122 specifie que les UUID doivent etre affiches en minuscules, mais les implementations doivent accepter les caracteres hexadecimaux en majuscules et minuscules comme equivalents.
Dois-je utiliser UUID ou ULID ?
Les ULID sont des identifiants de 128 bits lexicographiquement triables et encodes en Crockford Base32. Si vous avez besoin de triabilite sans la complexite de l'UUID v7, les ULID sont une bonne alternative.