Qu'est-ce qu'un UUID ?
Un UUID (Universally Unique Identifier, identifiant unique universel) est un nombre de 128 bits qui sert à identifier des lignes de base de données, des fichiers, des requêtes d'API ou des appareils sans demander le prochain identifiant libre à un serveur central. Il s'écrit avec 32 chiffres hexadécimaux répartis en cinq groupes, 8-4-4-4-12, par exemple f47ac10b-58cc-4372-a567-0e02b2c3d479.
Les UUID sont définis dans la RFC 9562 (2024), qui a remplacé l'ancienne RFC 4122 et ajouté les versions 6, 7 et 8. Le premier chiffre hexadécimal du troisième groupe indique la version (le 4 de 4372 ci-dessus), et le premier chiffre du quatrième groupe indique la variante (8, 9, a ou b pour les UUID standard).

Les versions d'UUID expliquées
Chaque version remplit les mêmes 128 bits d'une manière différente. Voici celles que vous rencontrerez vraiment :
122 bits aléatoires. Aucune signification à l'intérieur, rien qui puisse fuiter. C'est la version par défaut dans la plupart des langages (crypto.randomUUID(), uuid.uuid4(), Guid.NewGuid()).
Un timestamp Unix de 48 bits en millisecondes suivi de bits aléatoires : les nouveaux identifiants se trient après les anciens. La RFC 9562 la recommande plutôt que v1 et v6.
Un timestamp de 60 bits, une séquence d'horloge et un identifiant de nœud de 48 bits qui était à l'origine l'adresse MAC de l'ordinateur. Notre générateur utilise un nœud aléatoire à la place.
Un UUID d'espace de noms (namespace) et un nom, hachés avec SHA-1 (v5) ou MD5 (v3). La même entrée donne toujours le même UUID. Préférez la v5.
Les champs de la version 1 réarrangés pour que les identifiants se trient par date. Sert surtout de passerelle pour les systèmes qui utilisent déjà la v1.
Uniquement des zéros (00000000-0000-0000-0000-000000000000) ou uniquement des f. Servent de valeurs de remplacement pour « aucune valeur » ou « fin de plage ».
Advertisement
Comment générer un UUID
v4 pour un identifiant aléatoire, v7 si les identifiants vont dans un index de base de données ou doivent se trier par date de création, v5 si un même nom doit toujours correspondre au même UUID.
Générez 1, 10, 100 ou jusqu'à 1 000 UUID d'un coup. Chacun provient du générateur aléatoire cryptographiquement sûr du navigateur.
Minuscules standard, {accolades} et majuscules pour des GUID à la Windows, 32 caractères sans tirets, ou une URN urn:uuid:.
Copiez un seul UUID ou toute la liste, ou téléchargez-la en fichier .txt. L'adresse de la page conserve vos réglages : vous pouvez donc l'ajouter à vos favoris.
UUID ou GUID : y a-t-il une différence ?
GUID (Globally Unique Identifier) est le nom que Microsoft donne à la même chose. Un GUID créé par Guid.NewGuid() en .NET ou par New-Guid en PowerShell est un UUID version 4 standard.
La différence visible tient à la façon de les écrire : les outils Windows affichent souvent les GUID en majuscules et entre accolades, comme {F47AC10B-58CC-4372-A567-0E02B2C3D479}. Choisissez le format GUID avec accolades et cochez Majuscules pour obtenir exactement cela. En interne, Windows et .NET stockent les trois premiers groupes en ordre d'octets little-endian : les 16 octets bruts diffèrent donc de l'ordre d'octets de l'UUID, même quand le texte est identique. Certains GUID COM très anciens utilisent les bits de variante propres à Microsoft, que le décodeur ci-dessus signale.
Advertisement
UUID v4 ou v7 : lequel choisir ?
Les deux conviennent comme identifiants uniques. La différence apparaît quand vous en stockez des millions dans un index de base de données.
Utilisez la v7 pour les clés primaires. Comme chaque nouvel UUID v7 est plus grand que le précédent, les insertions arrivent à la fin d'un index B-tree au lieu d'endroits aléatoires, ce qui garde les index compacts et les insertions rapides dans PostgreSQL et MySQL. SQL Server fait exception : il trie les valeurs
uniqueidentifierd'abord selon leurs six derniers octets, si bien que la v7 n'y apporte pas cet avantage.Utilisez la v4 quand l'identifiant ne doit rien révéler. Un UUID v7 contient sa date de création à la milliseconde près ; quiconque le voit peut lire cette date avec le décodeur ci-dessus.
Utilisez la v5 pour des identifiants stables issus de noms, par exemple un UUID par nom de domaine ou par URL, pour que chaque système calcule la même valeur sans partager de table.
Évitez la v1 pour les nouveaux projets. La v1 classique intègre l'adresse MAC de la machine et la date de création ; la RFC 9562 recommande la v7 à la place.
Deux UUID peuvent-ils être identiques ?
En théorie oui, en pratique non. Un UUID version 4 compte 122 bits aléatoires, soit environ 5,3 × 10^36 valeurs possibles. Il faudrait en générer environ 2,7 milliards de milliards (2,7 × 10^18) avant d'avoir ne serait-ce que 50 % de chances d'obtenir un seul doublon. Cela représente un milliard d'UUID par seconde pendant environ 86 ans.
Le vrai risque est un générateur de nombres aléatoires défaillant, pas les mathématiques. Cet outil utilise crypto.getRandomValues(), la source cryptographiquement sûre du navigateur, et la v7 tient un compteur pour que les UUID créés dans la même milliseconde restent correctement triés et ne se répètent jamais.
Advertisement
Décoder un UUID : version, variante et timestamp
Ouvrez l'onglet Décoder et collez un ou plusieurs UUID, un par ligne, au format standard, entre accolades, urn:uuid: ou sur 32 caractères. Pour chacun, vous voyez s'il est valide, sa version et sa variante et, pour les v1, v6 et v7, la date et l'heure de sa création.
Pour les UUID v1 et v6, le décodeur affiche aussi l'identifiant de nœud et indique s'il ressemble à une vraie adresse MAC ou à une valeur aléatoire. C'est un moyen rapide de vérifier si d'anciens identifiants de votre système laissent fuiter des adresses matérielles.
Générer un UUID dans le code
La plupart des grands langages et bases de données savent créer des UUID sans paquet supplémentaire. La prise en charge de la version 7 est plus récente : Python 3.14, PostgreSQL 18, .NET 9 et Go 1.27 l'ont ajoutée.
crypto.randomUUID()
// 'f47ac10b-58cc-4372-a567-0e02b2c3d479' (version 4)import uuid
uuid.uuid4() # aléatoire
uuid.uuid5(uuid.NAMESPACE_DNS, 'example.com') # basé sur un nom, toujours identique
uuid.uuid7() # Python 3.14+SELECT gen_random_uuid(); -- version 4 (PostgreSQL 13+)
SELECT uuidv7(); -- version 7 (PostgreSQL 18+)Guid.NewGuid() // version 4
Guid.CreateVersion7() // version 7 (.NET 9+)
# PowerShell
New-Guiduuidgen # UUID aléatoire (macOS l'affiche en majuscules)
uuidgen --time # version 1 (util-linux)
cat /proc/sys/kernel/random/uuid # noyau LinuxUUID.randomUUID() // Java, version 4
uuid.NewV4() // Go 1.27+, bibliothèque standard, version 4
uuid.NewV7() // Go 1.27+, version 7
// Go plus ancien : github.com/google/uuid (uuid.New, uuid.NewV7)Advertisement
Autres outils pour développeurs
D'autres outils gratuits pour les développeurs et les administrateurs système, qui fonctionnent tous dans votre navigateur :
Timestamp Unix en date et inversement, dans n'importe quel fuseau horaire.
Texte, images et fichiers vers et depuis Base64.
Mots de passe aléatoires robustes, avec analyse d'entropie.
Adresses MAC aléatoires avec préfixes fabricant.