🌐 FR

🆔 Générateur d'UUID

Générez des identifiants uniques universels (UUID). Créez des UUID standards utilisés pour les clés de base de données, les jetons API, les identifiants de session, et bien plus encore.

Informations sur la version

v1 (basé sur l'horodatage)
Basé sur l'adresse MAC et l'horodatage. Ordre chronologique garanti.
v4 (aléatoire)
Entièrement aléatoire. Le plus couramment utilisé.
v7 (triable par horodatage)
Triable par horodatage. Norme la plus récente.
GUIDE

En savoir plus

01

1. Qu'est-ce qu'un UUID ?

L'UUID (Universally Unique Identifier, identifiant unique universel) est un identifiant sur 128 bits qui garantit l'unicité sans coordination centrale. Représenté en hexadécimal au format 8-4-4-4-12 (par exemple : 550e8400-e29b-41d4-a716-446655440000), la probabilité de doublon est extrêmement faible, où qu'il soit généré dans le monde. Il est utilisé comme clé primaire de base de données, identifiant de session, nom de fichier, jeton API, et bien plus encore. Également appelé GUID (Globally Unique Identifier), il est défini par la norme RFC 4122.

02

2. Comparaison des différentes versions d'UUID

Il existe 5 versions d'UUID, chacune utilisant une méthode de génération différente. La v1 combine l'adresse MAC et l'horodatage pour garantir l'ordre chronologique, mais présente des risques de sécurité liés à l'exposition de l'adresse MAC. La v4 est entièrement aléatoire, la plus utilisée, avec une imprévisibilité élevée. La v7 est la version la plus récente, standardisée en 2024, triable par horodatage et avantageuse pour l'indexation des bases de données. La v2 est destinée à la sécurité DCE, tandis que les v3/v5 sont basées sur des espaces de noms pour des usages spécifiques.

03

3. Cas d'usage de l'UUID

Les UUID sont utiles dans de nombreuses situations. Dans les systèmes distribués, des identifiants uniques peuvent être générés sans serveur central, offrant une excellente évolutivité. Dans les bases de données, utiliser des UUID comme clés primaires au lieu d'identifiants auto-incrémentés évite les conflits lors des fusions. Dans les architectures de microservices, ils servent à suivre les communications entre services. Ils sont également largement utilisés pour éviter les collisions de noms de fichiers lors des téléversements, générer des jetons temporaires, suivre des événements et analyser les corrélations dans les journaux.

04

4. Guide de choix entre v1, v4 et v7

Le choix de la version d'UUID dépend des besoins. Choisissez la v1 si l'ordre chronologique est important et si l'exposition de l'adresse MAC est acceptable. Cependant, l'adresse MAC permet de tracer le lieu de génération, ce qui pose des problèmes de confidentialité. La v4 est le meilleur choix si la sécurité est importante et l'ordre non nécessaire. Entièrement aléatoire, elle est imprévisible et ne divulgue aucune information personnelle. La v7 est recommandée si vous souhaitez à la fois un tri chronologique et de la sécurité. Le tri basé sur l'horodatage offre de bonnes performances de base de données et réduit la fragmentation des index.

05

5. Principe garantissant l'unicité de l'UUID

La probabilité de collision des UUID est astronomiquement faible. Pour la v4, 122 bits sont aléatoires, offrant 2^122 = 5,3 x 10^36 combinaisons possibles. Même en générant 1 milliard par seconde, il faudrait 85 ans pour atteindre une probabilité de collision de 50 %. La v1 garantit l'unicité temporelle grâce à l'horodatage (60 bits) et la séquence d'horloge (14 bits), et l'unicité spatiale grâce à l'adresse MAC (48 bits). La v7 combine l'horodatage Unix (48 bits) et une partie aléatoire (74 bits) pour satisfaire à la fois l'ordre chronologique et l'unicité.

06

6. Utilisation de l'UUID dans les bases de données

Utiliser des UUID comme clés primaires de base de données présente plusieurs avantages. Dans les environnements distribués, chaque nœud peut créer des identifiants de façon indépendante, sans générateur d'ID central, offrant une excellente évolutivité. Il n'y a pas de conflits d'identifiants lors des fusions de données, et une devinette séquentielle est impossible même exposée dans une URL, ce qui est avantageux pour la sécurité. Cependant, il existe aussi des inconvénients. Avec 16 octets, l'UUID est plus volumineux que les entiers (4 à 8 octets), et le caractère aléatoire de la v4 peut dégrader les performances d'indexation. Dans ce cas, utiliser la v7 permet un tri par ordre chronologique, ce qui améliore les performances des index B-tree.