BrowserTools
Publicité
Accueil / Générateurs / Générateur d'UUID (v1, v4, v7)

Générateur d'UUID (v1, v4, v7)

Générez des UUID conformes à la RFC 4122 en version 1, 4 ou 7, à l'unité ou en lot, copiez ou téléchargez.

Chargement de Générateur d'UUID (v1, v4, v7)… Si rien ne se passe, activez JavaScript.

Un UUID (Universally Unique Identifier, ou identifiant universellement unique), également appelé GUID dans les écosystèmes Microsoft, est une valeur normalisée de 128 bits utilisée pour étiqueter des entités, des lignes de base de données, des fichiers, des nœuds réseau ou des transactions, sans qu'aucune autorité centrale n'ait à émettre les identifiants. La norme est définie dans la RFC 4122 et organisée en versions, chacune dotée d'une stratégie de génération différente. La version 1 encode un horodatage et l'adresse MAC de la machine hôte ; la version 4 utilise 122 bits d'aléa cryptographique ; et la plus récente version 7 combine un horodatage Unix à la précision de la milliseconde avec des bits aléatoires, ce qui la rend à la fois unique et triable lexicographiquement.

Exemples

Entrée Version 4 (random)
Sortie f47ac10b-58cc-4372-a567-0e02b2c3d479

122 bits aléatoires. Le treizième chiffre hexadécimal est toujours 4 (la version).

Entrée Format
Sortie xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx

y vaut 8, 9, a ou b ; les deux bits les plus significatifs encodent la variante.

Questions fréquentes

Les UUID générés sont-ils envoyés à un serveur ?
Non. Toute la génération se déroule dans l'onglet de votre navigateur à l'aide de la Web Crypto API. Les UUID n'existent qu'en mémoire et ne sont jamais transmis sur le réseau. Vous pouvez le vérifier avec l'onglet Réseau des outils de développement de votre navigateur.
Quelle est la différence technique entre les UUID v1, v4 et v7 ?
La version 1 encode un horodatage de 60 bits (intervalles de 100 nanosecondes depuis octobre 1582) ainsi que l'adresse MAC de la machine hôte. La version 4 est constituée de 122 bits d'aléa cryptographique, les 6 bits restants étant fixés pour indiquer la version et la variante. La version 7 utilise un horodatage Unix de 48 bits en millisecondes suivi de 74 bits aléatoires, ce qui la rend à la fois unique et triable par date de création.
Quelle est la probabilité d'une collision d'UUID v4 ?
Extrêmement faible. Avec 122 bits aléatoires, la probabilité de générer ne serait-ce qu'un doublon n'atteint 50 % qu'après la création d'environ 2,71 × 10^18 UUID. Générer un milliard d'UUID par seconde en continu pendant 100 ans laisserait tout de même la probabilité de collision proche de zéro, autour de 0,000000006 %.
Pourquoi devrais-je utiliser la v7 plutôt que la v4 pour les clés primaires de base de données ?
Les valeurs UUID v4 sont entièrement aléatoires, ce qui entraîne des points d'insertion aléatoires dans les index B-tree. À grande échelle, cela provoque de fréquentes divisions de pages et des défauts de cache, ralentissant fortement le débit d'écriture. Le préfixe d'horodatage de l'UUID v7 fait que les nouveaux enregistrements s'insèrent près de la fin de l'index, comme des entiers à incrémentation automatique, tout en restant uniques au niveau mondial sans coordination.
Puis-je utiliser cet UUID comme secret cryptographique ou jeton ?
Un UUID v4 issu de `crypto.getRandomValues` possède 122 bits d'entropie, ce qui est techniquement suffisant pour de nombreux usages de jetons. Cependant, les UUID ont une mise en forme conventionnelle et sont publiquement reconnus comme des identifiants, et non comme des secrets. Pour des jetons porteurs, des clés de session ou des clés d'API, envisagez plutôt de générer une chaîne d'octets aléatoires brute et de la coder en base64.
Que signifie GUID et est-ce la même chose qu'un UUID ?
GUID signifie Globally Unique Identifier (identifiant unique au niveau mondial) et c'est le nom donné par Microsoft au même concept, employé à l'origine dans l'enregistrement des composants COM/DCOM dans les années 1990. Techniquement, un GUID suit la même structure que la RFC 4122, donc un UUID et un GUID sont interchangeables. La seule différence pratique réside dans les conventions de mise en forme : les GUID sont parfois affichés entre accolades, comme `{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}`.
Puis-je générer des UUID hors ligne ?
Oui. Cet outil est une page web statique sans dépendance serveur pour la logique de génération. Une fois la page chargée, vous pouvez vous déconnecter d'Internet et continuer à générer des UUID indéfiniment, car tout s'exécute dans le moteur JavaScript du navigateur.
Quelle est une erreur fréquente lors de l'utilisation des UUID v1 ?
Intégrer des adresses MAC dans les UUID v1 signifie que chaque identifiant créé par votre système contient une empreinte de la machine qui l'a généré. Cela a des implications pour la vie privée : ce fut l'un des facteurs ayant relié l'auteur du virus Melissa à son ordinateur en 1999. Pour tout identifiant visible par l'utilisateur ou journalisé publiquement, évitez la v1.
Quel format suit un UUID ?
Un UUID compte toujours 32 chiffres hexadécimaux répartis en cinq groupes séparés par des traits d'union : 8-4-4-4-12 caractères, par exemple `550e8400-e29b-41d4-a716-446655440000`. Le total est de 36 caractères avec les traits d'union, ou 32 sans. Le treizième chiffre hexadécimal indique la version (1, 4 ou 7) et le dix-septième indique la variante (toujours 8, 9, a ou b dans les UUID standard).
Puis-je générer des UUID en lot et les télécharger sous forme de fichier ?
Oui. Réglez le nombre sur la quantité souhaitée, jusqu'à plusieurs milliers, et utilisez le bouton de téléchargement pour enregistrer un fichier texte brut avec un UUID par ligne. C'est utile pour pré-générer des identifiants destinés aux scripts d'amorçage de base de données, aux fixtures de test ou aux fichiers de migration.

À propos de Générateur d'UUID (v1, v4, v7)

Les systèmes distribués constituent le principal cas d'usage des UUID. Lorsque vous disposez de plusieurs serveurs, microservices ou clients mobiles capables de fonctionner hors ligne qui créent tous des enregistrements simultanément, coordonner un unique compteur entier à incrémentation automatique devient un goulet d'étranglement ou une source de conflits. Les UUID contournent entièrement ce problème : n'importe quel nœud peut générer un identifiant unique au niveau mondial de façon indépendante, et les enregistrements peuvent être fusionnés ultérieurement sans collision. On les trouve partout, des clés primaires de bases de données et des jetons d'idempotence dans les API de paiement, aux identifiants de session, aux noms de fichiers adressables par contenu et aux identifiants de trace dans les pipelines d'observabilité.

Cet outil génère les UUID entièrement dans votre navigateur à l'aide de la Web Crypto API. Pour la v4, il appelle `crypto.randomUUID()` lorsqu'il est disponible (Chrome 92+, Firefox 95+) et se rabat sinon sur `crypto.getRandomValues` avec une mise en forme manuelle. Pour la v7, il lit `Date.now()` pour le préfixe d'horodatage de 48 bits et remplit les bits restants avec de l'aléa cryptographique. Aucun identifiant n'est transmis à un serveur, et rien n'est journalisé. Vous pouvez générer un seul UUID ou un lot massif à importer dans un fixture de test ou un script de migration.

Une idée fausse répandue est que les UUID seraient des hachages opaques. Ils ne le sont pas : les UUID v1 intègrent votre adresse MAC et un horodatage, ce qui peut divulguer l'identité de l'appareil. Dans les contextes sensibles à la vie privée, préférez toujours la v4 ou la v7. Un autre piège consiste à utiliser des UUID comme clés de base de données séquentielles avec des index B-tree : les UUID v4 sont aléatoires, ce qui provoque une fragmentation de l'index. C'est pourquoi la v7 a été introduite : son préfixe d'horodatage maintient les insertions à peu près dans l'ordre, améliorant nettement les performances d'écriture de l'index sur les grandes tables.

Le problème de l'identité distribuée : comment les UUID sont nés du chaos des réseaux

L'ancêtre conceptuel de l'UUID est l'identifiant unique au niveau mondial conçu pour le Network Computing System d'Apollo Computer à la fin des années 1980, qui avait besoin d'un moyen d'identifier les interfaces RPC sans registre central. L'Open Software Foundation l'a adapté pour en faire la spécification d'UUID du DCE (Distributed Computing Environment) au début des années 1990, en y intégrant des adresses MAC et des horodatages afin que n'importe quelle machine sur n'importe quel réseau puisse forger un identifiant garanti unique dans l'espace et dans le temps.

Microsoft a adopté ce schéma pour COM et DCOM au milieu des années 1990 sous le nom de GUID, et il est devenu omniprésent sur les plateformes Windows. La norme moderne RFC 4122, publiée en 2005, a formalisé le format et défini les versions 1 à 5. La version 4, la variante purement aléatoire qui domine aujourd'hui, a été en partie motivée par des préoccupations de confidentialité, après que des chercheurs eurent démontré que les UUID v1 pouvaient servir à identifier et à pister la machine qui les avait générés.

La version 7 a été proposée dans un brouillon de l'IETF en 2021 et finalisée dans la RFC 9562 en 2024, en réponse directe aux problèmes de performances de base de données causés par les UUID aléatoires utilisés comme clés primaires. La spécification a été portée par des ingénieurs de grands fournisseurs de cloud qui avaient mesuré les coûts réels de la fragmentation des index des UUID v4 à l'échelle de milliards de lignes. La RFC 9562 a également déprécié les versions v1 et v2 pour les nouvelles applications, consacrant la v4 pour les contextes sensibles à la vie privée et la v7 pour le stockage ordonné dans le temps.

Publicité
Publicité
Publicité