Un UUID (Universally Unique Identifier) est un identifiant de 128 bits standardisé par la RFC 9562 (anciennement RFC 4122), conçu pour être unique sans autorité centrale de coordination. Les UUIDs v4 sont générés aléatoirement avec une probabilité de collision de 1 sur 2^122 (~5,3 × 10^36). Les UUIDs v7, introduits en 2024, intègrent un horodatage Unix de précision milliseconde dans les 48 premiers bits, ce qui les rend triables chronologiquement — un avantage majeur pour les clés primaires de bases de données (PostgreSQL, MongoDB).
Qu'est-ce qu'un UUID et à quoi sert-il ?
Un UUID (Universally Unique Identifier) est une étiquette de 128 bits utilisée pour identifier des informations dans des systèmes distribués sans nécessiter d'autorité de coordination centrale. La représentation textuelle standard est 32 chiffres hexadécimaux en cinq groupes séparés par des tirets : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx. Les UUID sont définis par la RFC 4122 (originale) et la RFC 9562 (mise à jour 2024 introduisant la v7).
Le chiffre de version (le 13e caractère hexadécimal) indique comment l'UUID a été généré. La version 4 signifie aléatoire, la version 7 signifie basé sur l'horodatage.
Quelle est la différence entre UUID v4 et UUID v7 ?
UUID v4 remplit 122 de ses 128 bits avec des données aléatoires cryptographiquement sûres (les 6 bits restants encodent la version et la variante). Cela donne 5,3 × 10^36 valeurs possibles, rendant les collisions astronomiquement improbables. La v4 est la version la plus largement utilisée aujourd'hui.
UUID v7, défini dans la RFC 9562 (2024), intègre un horodatage Unix en millisecondes dans les 48 premiers bits. Les bits restants sont aléatoires. Les UUID v7 sont donc naturellement triables par date de création — un avantage considérable pour les clés primaires de bases de données, car les index B-tree sont les plus performants avec des insertions séquentielles.
En résumé : utilisez la v4 pour un maximum d'aléatoire et zéro fuite d'information. Utilisez la v7 pour des identifiants triables par le temps et optimisés pour l'indexation.
Quand faut-il utiliser un UUID plutôt qu'un identifiant auto-incrémenté ?
Les UUID sont le choix standard quand vous avez besoin d'identifiants uniques globalement sans autorité centrale :
- Clés primaires de base de données — éviter les conflits d'auto-incrémentation dans les bases distribuées ou shardées
- Systèmes distribués — chaque nœud génère des identifiants indépendamment sans coordination
- Identifiants de ressources API — exposer des UUID dans les URLs au lieu d'entiers séquentiels pour prévenir les attaques par énumération
- IDs de session et de corrélation — tracer les requêtes à travers les microservices avec des tokens uniques
- Nommage de fichiers — générer des noms de fichiers uniques pour les uploads sans risque de collision
Besoin d'encoder vos UUID pour le transport ? Essayez notre encodeur Base64.