Générateur d'UUID

RSS

Générez des UUID version 4 cryptographiquement aléatoires ou version 7 ordonnés dans le temps, un par un ou en masse.

Fonctionne à 100 % dans votre navigateur. Rien de ce que vous collez n'est envoyé ni stocké.

Comment utiliser le générateur d'UUID

  1. Choisissez la version : v4 (aléatoire) ou v7 (ordonnée dans le temps).
  2. Indiquez le nombre d'UUID dont vous avez besoin, d'un seul à toute une liste.
  3. Si vous le souhaitez, passez en majuscules ou supprimez les tirets.
  4. Copiez une valeur ou la liste entière.

Les UUID sont générés dans votre navigateur à l'aide de son générateur de nombres aléatoires cryptographiquement sûr. Ils ne sont jamais envoyés à nos serveurs ni enregistrés sur ceux-ci : personne d'autre ne sait donc quels identifiants vous avez créés.

Qu'est-ce qu'un UUID ?

Un UUID (Universally Unique Identifier, identifiant unique universel) est une valeur de 128 bits qui peut être générée de manière indépendante sur n'importe quelle machine avec une probabilité négligeable de collision avec une autre. Aucun registre central ni aller-retour vers une base de données n'est nécessaire, ce qui rend les UUID idéaux pour les systèmes distribués, les clients hors ligne et la fusion de données provenant de plusieurs sources. Ils sont aussi couramment utilisés comme identifiants de requête et pour la claim jti des jetons que vous pouvez inspecter avec le décodeur JWT. GUID (Globally Unique Identifier) est le nom que Microsoft donne à la même chose.

Les UUID s'écrivent sous la forme de 32 chiffres hexadécimaux répartis en cinq groupes séparés par des tirets, selon le schéma 8-4-4-4-12 (36 caractères au total) :

f47ac10b-58cc-4372-a567-0e02b2c3d479
              ^    ^
              |    variante (8, 9, a ou b)
              version (4)

Le premier chiffre du troisième groupe correspond à la version ; le premier chiffre du quatrième groupe code la variante. La spécification actuelle est la RFC 9562 (2024), qui a remplacé la RFC 4122 et ajouté les versions 6, 7 et 8.

Version 4 ou version 7

UUID v4UUID v7
Contenu122 bits aléatoires (6 bits fixes pour la version et la variante)Timestamp Unix de 48 bits en millisecondes, puis des bits aléatoires
Ordre de triAléatoireÀ peu près chronologique
RévèleRienSa date de création
Idéal pourJetons, identifiants publics, usage généralClés primaires de base de données, journaux d'événements

Pourquoi la v7 convient mieux aux index de base de données

Les clés primaires sont généralement stockées dans un index B-tree. Les valeurs v4 aléatoires arrivent à des positions aléatoires : chaque insertion touche donc une page différente, ce qui provoque des divisions de pages, une mauvaise localité du cache et un gonflement de l'index sur les grandes tables. Comme les UUID v7 commencent par un timestamp, les nouvelles valeurs s'ajoutent vers la fin de l'index, un peu comme un entier auto-incrémenté, tout en conservant les avantages d'identifiants uniques au niveau mondial et générés côté client.

Pièges courants

  • Stocker les UUID sous forme de texte. Une chaîne de 36 caractères occupe plus du double de l'espace des 16 octets bruts. Utilisez un type uuid natif (PostgreSQL) ou BINARY(16) (MySQL).
  • Utiliser les UUID comme secrets. Les valeurs v4 sont difficiles à deviner, mais ce sont des identifiants, pas des informations d'authentification. Les valeurs v7 exposent leur date de création et sont en partie prévisibles. Utilisez un jeton aléatoire dédié pour les réinitialisations de mot de passe et les clés d'API.
  • Comparaisons sensibles à la casse. La RFC 9562 prévoit une sortie en minuscules, mais exige que les entrées soient acceptées dans les deux casses. Normalisez les chaînes avant de les comparer.
  • Sources aléatoires faibles. Générer des UUID v4 avec Math.random() compromet leur unicité. Utilisez un générateur cryptographiquement sûr.

Générer des UUID dans le code

// JavaScript (navigateurs et Node.js)
crypto.randomUUID();                 // v4

# Python
import uuid
uuid.uuid4()
uuid.uuid7()                         # Python 3.14+

-- PostgreSQL
SELECT gen_random_uuid();            -- v4 (PostgreSQL 13+)
SELECT uuidv7();                     -- PostgreSQL 18+

// Java
java.util.UUID.randomUUID();

// C# / .NET
Guid.NewGuid();                      // v4
Guid.CreateVersion7();               // .NET 9+

# Shell (Linux, macOS)
uuidgen
Astuce : besoin du timestamp d'un UUID v7 ? Les 12 premiers chiffres hexadécimaux (sans les tirets) correspondent au temps Unix en millisecondes. Convertissez-les de l'hexadécimal en décimal et collez le résultat dans le convertisseur de timestamp Unix.

Questions fréquentes

Deux UUID peuvent-ils être identiques ?

En théorie, oui ; en pratique, non. Avec 122 bits aléatoires, le nombre de valeurs v4 possibles est si grand qu'il faudrait générer des milliards d'UUID par seconde pendant de nombreuses décennies avant qu'un seul doublon devienne probable. Dans les systèmes réels, les collisions proviennent presque toujours d'un générateur de nombres aléatoires défaillant ou de données copiées, pas du hasard.

Quelle est la différence entre un UUID et un GUID ?

Aucune en pratique. GUID est le terme utilisé dans les technologies Microsoft ; le format et la taille sont identiques.

Faut-il utiliser la v4 ou la v7 ?

Utilisez la v7 pour les clés primaires de base de données et tout ce que vous voulez trier par date de création. Utilisez la v4 lorsque l'identifiant ne doit rien révéler, par exemple pour des identifiants exposés dans des URL publiques.

L'UUID nil est-il valide ?

Oui. 00000000-0000-0000-0000-000000000000 est l'UUID nil spécial, et la RFC 9562 définit aussi un UUID max composé uniquement de chiffres f. Les deux servent souvent de valeurs de substitution.

Mis à jour

Copié dans le presse-papiers