Générateur d'UUID

Code
Espace de noms

Introduction

Le Générateur d'UUID Toollect est un outil basé sur un navigateur qui produit des Identifiants Universels Uniques (UUIDs, également connus sous le nom de GUIDs) dans les huit versions standard — v1 à v8. Que vous ayez besoin d'identifiants aléatoires pour des formulaires web, de clés ordonnées dans le temps pour des enregistrements de base de données, d'IDs déterministes basés sur des espaces de noms pour des systèmes distribués, ou d'UUID de format personnalisé pour une intégration héritée, cet outil couvre tout le spectre sans nécessiter d'installation logicielle ni de traitement côté serveur.

Les UUID sont l'un des standards d'identification les plus adoptés en génie logiciel, utilisés partout, des clés primaires de base de données et identifiants de ressources API au traçage distribué et aux jetons de session. Le Générateur d'UUID Toollect regroupe toutes les versions d'UUID dans une interface unique, vous permettant de choisir la variante adaptée à votre cas d'usage et de la générer instantanément en un clic.

Toute la génération s'exécute entièrement dans votre navigateur en utilisant l'API Web Crypto. Aucune donnée n'est transmise sur le réseau, aucun cookie n'est défini et aucun identifiant n'est enregistré. L'outil fonctionne hors ligne après le chargement initial de la page et sur tous les navigateurs et appareils modernes.

Cas d'utilisation

Différentes versions d'UUID répondent à différents besoins architecturaux. Le choix de la version correcte dépend de vos exigences en matière de tri, de déterminisme, de confidentialité et de coordination système.

Clés primaires de base de données

Les UUID éliminent le besoin d'une séquence centrale lors de la génération de clés primaires sur des instances de base de données distribuées. L'UUID v4 est le choix le plus simple, mais les UUID v6 et v7 offrent un tri chronologique qui réduit considérablement la fragmentation des index B-tree dans des bases de données comme PostgreSQL et MySQL. Pour les systèmes nécessitant à la fois une unicité globale et des performances d'écriture rapides, v7 est devenu le choix moderne recommandé.

Identifiants de systèmes distribués

Les microservices et les systèmes distribués génèrent souvent des identifiants indépendamment sur différents nœuds. L'UUID v1 inclut un identifiant de nœud (dérivé de l'adresse MAC) et une séquence d'horloge, rendant les IDs de chaque nœud générateur intrinsèquement uniques sans coordination. Les UUID v4 et v7 sont également populaires pour ce scénario en raison de leur simplicité.

IDs déterministes basés sur le nom

Lorsque la même entrée doit toujours produire le même UUID — par exemple, générer un identifiant stable à partir d'un e-mail utilisateur, d'une URL de ressource ou d'un nom qualifié par espace de noms — les UUID v3 (basé sur MD5) et v5 (basé sur SHA-1) fournissent le déterminisme. Ceci est utile pour le stockage adressable par contenu, l'identité d'entité dans l'event sourcing et la migration de données héritées sans changer les identifiants.

Identifiants de ressources API

Exposer des entiers auto-incrémentés dans les URL d'API divulgue des informations sur la quantité et l'ordre des ressources. Les UUID fournissent des identifiants opaques qui ne révèlent rien des internes du système. L'UUID v4 est le choix le plus courant pour les chemins de ressources API REST. Les options de formatage en majuscules et sans tirets de l'outil facilitent l'adaptation des UUID à différentes conventions d'URL et de formatage.

Systèmes personnalisés et hérités

L'UUID v2 (sécurité DCE) ajoute des identifiants d'utilisateur et de groupe locaux pour les contextes de sécurité au niveau du système d'exploitation. L'UUID v8 permet des dispositions de champ personnalisées pour les systèmes qui doivent intégrer des bits de données spécifiques tout en conservant le format UUID standard. Ces versions sont de niche mais précieuses pour des scénarios d'intégration spécialisés.

Fonctionnement

Le Générateur d'UUID fonctionne entièrement côté client. Lorsque vous sélectionnez une version et cliquez sur générer, l'outil invoque l'algorithme approprié en utilisant JavaScript et l'API Web Crypto du navigateur.

Pour les UUID basés sur l'aléatoire (v4), l'outil appelle crypto.getRandomValues() pour produire des octets aléatoires cryptographiquement sécurisés, puis les formate dans la disposition UUID standard avec les bits de version et de variante corrects. Pour les UUID basés sur le temps (v1, v2, v6, v7), l'outil lit l'horodatage actuel de l'horloge système et le combine avec des octets de séquence d'horloge et de nœud aléatoires. Pour les UUID basés sur le nom (v3, v5), l'outil hache un espace de noms et un nom ensemble en utilisant MD5 ou SHA-1 via l'API SubtleCrypto, puis extrait 128 bits dans le format UUID standard.

Format UUID

Un UUID est une valeur de 128 bits affichée sous forme de chaîne de 36 caractères au format xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx, où chaque x est un chiffre hexadécimal. Les 128 bits sont structurés en champs :

Champ Bits Objectif
time_low 32 32 bits bas de l'horodatage (v1, v2, v6)
time_mid 16 16 bits moyens de l'horodatage
time_hi_and_version 16 12 bits hauts de l'horodatage + version 4 bits
clock_seq_hi_and_reserved 8 6 bits hauts de la séquence d'horloge + 2 bits de variante
clock_seq_low 8 8 bits bas de la séquence d'horloge
node 48 Identifiant de nœud (adresse MAC ou aléatoire)

Le nibble de version (bits 48-51, le nibble le plus significatif du troisième groupe) identifie l'algorithme qui a produit l'UUID : 0001 (v1), 0010 (v2), 0011 (v3), 0100 (v4), 0101 (v5), 0110 (v6), 0111 (v7), 1000 (v8). C'est le 4 que vous voyez dans un UUID v4 standard comme 550e8400-e29b-41d4-a716-446655440000.

Les bits de variante (bits 64-65, les deux bits les plus significatifs du premier octet du quatrième groupe) indiquent la variante UUID. La RFC 9562 spécifie la variante 10xxxxxx (bits 64-65 = 10), ce qui signifie que le premier caractère du quatrième groupe est toujours 8, 9, a ou b.

Exemple de disposition binaire

La structure 128 bits d'un UUID se comprend mieux visuellement. Prenant un UUID v4 concret 550e8400-e29b-41d4-a716-446655440000, voici comment les bits correspondent à chaque groupe et champ :

Groupe :    1          2          3          4          5
Hex :     550e8400    e29b       41d4       a716       446655440000
Binaire : [32 bits]   [16 bits]   [16 bits]  [16 bits]  [48 bits]

Nibble de version (groupe 3, nibble haut) :
  550e8400-e29b-4  1d4-a716-446655440000
                  ^
                  version = 0100 (v4)

Bits de variante (groupe 4, octet haut) :
  550e8400-e29b-41d4-  a  716-446655440000
                       ^
                       variant = 10xxxxxx

Décomposition binaire des groupes 3-4 :

  group 3 (16 bits)      group 4 start (8 bits)
  0100 0001 1101 0100    1010 0111
  └─┘                    └─┘
  ver=0100 (v4)          variant | clock_seq_hi
                         10

Pour UUID v7, les 48 premiers bits codent l'horodatage Unix en millisecondes :

  018f3a6e-1a2b-  7  bcd-8a1b-2c3d4e5f6789
                  ^
                  version = 0111 (v7)

  groups 1-2: 48-bit Unix ms timestamp
  0000 0001 1000 1111 0011 1010 0110 1110 0001 1010 0010 1011
  group 3 high nibble:
  0111  = version 7

L'octet haut du quatrième groupe (a dans l'exemple ci-dessus) contient les bits de variante. Puisque la variante est 10, cet octet se situe toujours dans la plage 1000 0000 (0x80) à 1011 1111 (0xBF), ce qui correspond en hexadécimal à 8, 9, a ou b comme premier caractère du quatrième groupe.

Versions d'UUID expliquées

Le tableau suivant résume les huit versions standard d'UUID en un coup d'œil :

Version Algorithme Entrée principale Déterministe Triable Utilisation typique
v1 Temps + Nœud Horodatage, séquence d'horloge, MAC Non Oui (temps) Systèmes distribués, IDs temps hérités
v2 Sécurité DCE Horodatage, POSIX UID/GID Non Oui (temps) Identifiants d'environnement DCE (niche)
v3 Hachage MD5 Espace de noms + nom Oui Non IDs basés sur nom où MD5 suffit
v4 Aléatoire 122 bits aléatoires Non Non Identifiants à usage général
v5 Hachage SHA-1 Espace de noms + nom Oui Non Identifiants basés sur nom (recommandé sur v3)
v6 Temps réorganisé Horodatage (temps haut d'abord) Non Oui (temps) Clés de base de données ordonnées dans le temps
v7 Horodatage Unix + aléatoire Horodatage Unix ms + aléatoire Non Oui (ms) Identifiants modernes ordonnés dans le temps
v8 Personnalisé Champs définis par l'utilisateur Dépend Dépend Formats expérimentaux ou propriétaires personnalisés

UUID v1 — Basé sur le temps

L'UUID v1 combine un horodatage de 60 bits (intervalles de 100 nanosecondes depuis le 15 octobre 1582), une séquence d'horloge de 14 bits (pour la détection de recul d'horloge) et un identifiant de nœud de 48 bits (traditionnellement dérivé de l'adresse MAC). Cela donne à chaque nœud générateur un espace d'identifiant unique sans coordination.

L'horodatage est disposé avec les parties basse, moyenne et haute sur les trois premiers groupes de l'UUID. Cette disposition non séquentielle signifie que les UUID v1 sont triables par temps mais pas dans un ordre monotone adapté aux bases de données — v6 et v7 résolvent ce problème.

UUID v2 — Sécurité DCE

L'UUID v2 étend la disposition de l'horodatage et de la séquence d'horloge de v1 mais remplace le champ de nœud de 48 bits par un ID utilisateur (UID) ou groupe (GID) POSIX de 32 bits et un identifiant de domaine local de 6 bits. Les 10 bits restants du champ de nœud et 2 bits de la séquence d'horloge sont réaffectés au domaine local et à sa structure :

Champ Bits Source
Horodatage 60 Même époque que v1 (100 ns depuis 1582-10-15)
Séquence d'horloge 6 Standard, réduit de 14 bits
Domaine local 6 Identifie le domaine UID (POSIX, DCE, etc.)
Identifiant local 32 Valeur UID ou GID POSIX

L'UUID v2 est spécifié dans le standard DCE 1.1 : Remote Procedure Call, et non dans la spécification centrale UUID RFC 9562. Il est rarement utilisé en dehors des environnements DCE hérités, et la plupart des générateurs d'UUID modernes l'omettent ou l'incluent seulement par souci d'exhaustivité. Si vous construisez un nouveau système, utilisez v4, v7 ou v5.

UUID v3 — Basé sur le nom MD5

L'UUID v3 génère un UUID déterministe à partir d'un UUID d'espace de noms et d'une chaîne de nom. Le processus concatène les octets de l'espace de noms et du nom, calcule un hachage MD5 et prend les 128 premiers bits comme UUID. Le même espace de noms et le même nom produisent toujours le même UUID v3, le rendant adapté à l'adressage de contenu et aux identifiants stables.

Voir la section UUID v3 vs v5 pour une comparaison des deux versions basées sur le nom.

UUID v4 — Aléatoire

L'UUID v4 utilise 122 bits générés aléatoirement plus 6 bits fixes (4 pour le nibble de version, 2 pour la variante). C'est la version d'UUID la plus utilisée, prise en charge directement par la plupart des bibliothèques standard des langages de programmation. Le Générateur d'UUID Toollect utilise crypto.getRandomValues() pour garantir un caractère aléatoire cryptographiquement sécurisé, rendant la sortie adaptée aux contextes sensibles à la sécurité comme les jetons de session.

La probabilité d'une collision sur un milliard d'UUID v4 générés est d'environ 1 sur 5,3 × 10²¹ — négligeable pour tous les usages pratiques.

UUID v5 — Basé sur le nom SHA-1

L'UUID v5 est la contrepartie de v3, utilisant SHA-1 au lieu de MD5 pour le hachage sous-jacent. Il produit les mêmes garanties de déterminisme (même espace de noms + nom = même UUID) avec un algorithme de hachage plus résistant aux collisions. Pour les nouveaux systèmes nécessitant des UUID basés sur le nom, la RFC 9562 recommande v5 plutôt que v3.

Voir la section UUID v3 vs v5 pour la comparaison détaillée.

UUID v6 — Temps réorganisé

L'UUID v6 restructure l'horodatage de v1 pour placer les bits de temps les plus significatifs en premier. Cela rend les UUID v6 strictement croissants lorsqu'ils sont triés lexicographiquement, contrairement à v1 où l'horodatage est réparti sur des champs non adjacents. L'UUID v6 est un remplacement moderne de v1 dans les environnements où les index de base de données ordonnés dans le temps ou le stockage trié sont importants.

UUID v7 — Horodatage Unix + aléatoire

L'UUID v7 utilise un horodatage Unix de 48 bits en millisecondes suivi de 74 bits aléatoires. L'horodatage occupe les bits les plus significatifs, rendant les UUID v7 triables par temps de création — idéal pour les clés primaires de base de données où la performance des index B-tree est cruciale. L'UUID v7 est plus simple que v1 ou v6 car il ne nécessite pas d'adresses MAC, de séquences d'horloge ou de conversions d'époque de 100 ns.

Pour les nouveaux systèmes nécessitant des UUID ordonnés dans le temps, v7 est généralement le meilleur choix : il offre un tri à la milliseconde près, une large aléatoire et une implémentation directe.

UUID v8 — Personnalisé

L'UUID v8 réserve l'espace d'identifiant de version 8 pour les formats UUID expérimentaux ou propriétaires. Les seuls bits fixes sont le nibble de version de 4 bits (1000) dans les bits 48-51 et la variante de 2 bits (10) dans les bits 64-65 — les 122 bits restants sont libres pour toute disposition de champ personnalisée.

Champ Bits Contrainte
Contenu personnalisé 48 Bits 0-47 (groupes 1-2), format libre
Version 4 Fixé à 1000
Contenu personnalisé 12 Bits 52-63 (fin du groupe 3), format libre
Variante 2 Fixé à 10
Contenu personnalisé 62 Bits 66-127 (groupes 4-5), format libre

Les utilisations courantes de v8 incluent l'incorporation d'un préfixe spécifique à l'entreprise, la combinaison d'un horodatage tronqué avec un compteur de séquence, ou le codage d'un identifiant hérité au format UUID tout en maintenant la compatibilité avec le format standard. Par exemple, un système pourrait allouer les 32 premiers bits comme ID de locataire, les 32 bits suivants comme horodatage en millisecondes et les 64 bits restants comme suffixe aléatoire — le tout dans un format que tout analyseur UUID standard peut lire sans modification.

Le format v8 n'est pas enregistré auprès de l'IANA et n'offre aucune garantie d'interopérabilité entre systèmes. C'est un espace d'usage privé pour les cas où les versions standard d'UUID ne correspondent pas à la disposition de données requise.

UUID v3 vs v5

UUID v3 et v5 génèrent tous deux des identifiants déterministes à partir d'un UUID d'espace de noms et d'un nom, mais diffèrent par leur algorithme de hachage :

Aspect UUID v3 UUID v5
Algorithme de hachage MD5 (128 bits) SHA-1 (160 bits, tronqué à 128)
Résistance aux collisions Plus faible — MD5 est considéré cryptographiquement cassé Plus élevée — aucune attaque de collision pratique
Performance Légèrement plus rapide (MD5 vs SHA-1) Légèrement plus lent
Recommandation standard Uniquement pour compatibilité ascendante v3 RFC 9562 recommande v5 pour les nouveaux systèmes
Interopérabilité Requis si le système existant utilise v3 Requis si le système existant utilise v5

Le Générateur d'UUID Toollect inclut quatre espaces de noms standard prédéfinis par la RFC 9562 : DNS (6ba7b810-9dad-11d1-80b4-00c04fd430c8), URL (6ba7b811-9dad-11d1-80b4-00c04fd430c8), OID (6ba7b812-9dad-11d1-80b4-00c04fd430c8) et X.500 (6ba7b814-9dad-11d1-80b4-00c04fd430c8). Vous pouvez également fournir un espace de noms personnalisé au format UUID standard pour des espaces de noms non standard.

Utilisation

L'utilisation du Générateur d'UUID Toollect ne nécessite ni configuration ni inscription. L'interface est divisée en deux panneaux — un pour les UUID v1/v2/v4/v6/v7/v8 (génération instantanée) et un pour les UUID v3/v5 (génération basée sur le nom).

Bloc 1 — UUID standard (v1, v2, v4, v6, v7, v8)

  1. Sélectionnez la version d'UUID dans le menu déroulant. La valeur par défaut est v4.
  2. Cliquez sur Générer ou appuyez sur Entrée. Un nouvel UUID apparaît instantanément dans le champ de sortie.
  3. Basculez les options de formatage selon vos besoins :
    • Majuscules : Convertit la sortie en chiffres hexadécimaux majuscules.
    • Sans tirets : Supprime les tirets, produisant une chaîne compacte de 32 caractères.
  4. Copiez le résultat en cliquant sur le bouton Copier.

Le changement du menu déroulant de version déclenche une régénération automatique, donc passer de v4 à v7 produit immédiatement un nouvel identifiant.

Bloc 2 — UUID basés sur le nom (v3, v5)

  1. Sélectionnez v3 ou v5 dans le menu déroulant de version du panneau basé sur le nom.
  2. Choisissez un espace de noms en sélectionnant l'une des options prédéfinies (DNS, URL, OID, X.500) ou Personnalisé.
  3. Si vous utilisez un espace de noms personnalisé, saisissez un UUID valide dans le champ de texte. L'outil valide le format et affiche une erreur si l'UUID est mal formé.
  4. Saisissez le nom dans le champ de saisie du nom. L'UUID est régénéré automatiquement au fur et à mesure que vous tapez.
  5. Basculez le formatage majuscules et sans tirets et Copiez le résultat comme dans le Bloc 1.

Le panneau basé sur le nom génère des UUID à chaque changement de saisie — il n'y a pas de bouton de génération séparé pour ce panneau.

Tutoriel

Ce tutoriel vous guide à travers trois scénarios courants, de l'ouverture de l'outil à la copie de l'UUID final.

Scénario 1 : Générer un UUID v4 pour un formulaire web

  1. Ouvrez l'outil dans votre navigateur. L'interface du Générateur d'UUID affiche deux panneaux.
  2. Dans le Bloc 1, assurez-vous que le menu déroulant de version est sur v4 (la valeur par défaut).
  3. Cliquez sur Générer. Un UUID v4 apparaît, par exemple 550e8400-e29b-41d4-a716-446655440000.
  4. Cliquez sur Copier pour copier l'UUID dans votre presse-papiers, puis collez-le dans votre formulaire web ou requête API.
  5. Basculez Majuscules et cliquez à nouveau sur Générer pour produire 550E8400-E29B-41D4-A716-446655440000.
  6. Basculez Sans tirets pour produire 550e8400e29b41d4a716446655440000 pour un stockage compact ou des paramètres d'URL.

Scénario 2 : Générer un UUID v7 ordonné dans le temps pour une clé primaire de base de données

Supposons que vous concevez une table dans PostgreSQL qui nécessite des clés primaires globalement uniques sans séquence centrale, mais vous souhaitez également de bonnes performances d'écriture.

  1. Sélectionnez v7 dans le menu déroulant de version du Bloc 1. Le champ de sortie affiche immédiatement un nouvel UUID v7, comme 018f3a6e-1a2b-7bcd-8a1b-2c3d4e5f6789.
  2. Notez les premiers caractères — l'UUID v7 commence par un horodatage Unix en millisecondes, donc les générations successives montreront des valeurs croissantes dans les premiers groupes.
  3. Générez plusieurs UUID en succession rapide et observez que les valeurs sont monotones : chaque nouvel UUID commence par un préfixe plus grand ou égal au précédent.
  4. Copiez l'identifiant pour votre instruction INSERT : INSERT INTO users (id, name) VALUES ('018f3a6e-1a2b-7bcd-8a1b-2c3d4e5f6789', 'Alice');

Scénario 3 : Générer un UUID v5 déterministe à partir d'une URL de ressource

Imaginez que vous avez un système de gestion de contenu où chaque article est identifié par son URL, et vous avez besoin d'un UUID stable qui ne change pas entre les déploiements.

  1. Dans le Bloc 2, réglez la version sur v5.
  2. Sélectionnez l'espace de noms URL. Cela utilise 6ba7b811-9dad-11d1-80b4-00c04fd430c8, l'espace de noms standard pour les UUID basés sur URL.
  3. Saisissez l'URL de l'article dans le champ Nom, par exemple https://example.com/articles/uuid-guide.
  4. L'UUID apparaît automatiquement — chaque fois que vous saisissez la même URL avec l'espace de noms URL, vous obtenez le même UUID.
  5. Testez le déterminisme : Sélectionnez l'espace de noms DNS à la place et observez que l'UUID change. Revenez à URL — l'UUID original réapparaît.

Conseils pratiques

Maîtrisez ces techniques avancées pour tirer le meilleur parti du Générateur d'UUID Toollect :

  • Utilisez v7 plutôt que v1 pour les clés primaires de base de données : L'UUID v7 trie par horodatage en millisecondes à partir des bits les plus significatifs, vous offrant un ordre monotone adapté aux B-tree sans la complexité des adresses MAC ou de la gestion de séquence d'horloge. Pour les nouveaux projets nécessitant des UUID ordonnés dans le temps, commencez par v7.

  • Préférez v5 à v3 pour les UUID basés sur le nom : Sauf si vous devez interopérer avec un système utilisant v3, utilisez toujours UUID v5. SHA-1 offre plus de marge de sécurité contre les collisions que MD5 avec une différence de performance négligeable. L'outil utilise v5 par défaut dans le panneau basé sur le nom pour cette raison.

  • Supprimez les tirets pour les paramètres d'URL : Basculez Sans tirets lorsque vous utilisez des UUID dans les chemins d'URL ou les paramètres de requête. Sans tirets, un UUID devient une chaîne hexadécimale de 32 caractères qui ne nécessite pas d'encodage URL et est visuellement plus propre dans les segments de route.

  • Utilisez les espaces de noms prédéfinis pour des identifiants cohérents entre systèmes : Les espaces de noms DNS, URL, OID et X.500 sont normalisés dans la RFC 9562. Les utiliser garantit que tout générateur d'UUID conforme à la RFC produise le même UUID v3 ou v5 pour le même nom. Ceci est essentiel pour la concordance des identifiants entre systèmes.

  • Espace de noms personnalisé avec un UUID v4 fixe : Lors de la création de votre propre espace de noms pour les UUID v3/v5, générez un UUID v4 une fois, stockez-le dans votre configuration et réutilisez-le. Cela garantit que tous les identifiants dans votre espace de noms personnalisé sont distincts de tout autre espace de noms.

  • Générez par lots en cliquant plusieurs fois : Pour les petits lots, cliquer rapidement sur Générer produit des UUID distincts à chaque fois. Pour la génération à grande échelle, utilisez la méthode en ligne de commande ou programmatique décrite ci-dessous.

Idées reçues courantes sur les UUID

Plusieurs croyances largement répétées sur les UUID sont inexactes ou trompeuses. Comprendre les nuances vous aide à prendre de meilleures décisions architecturales.

« Les UUID sont garantis uniques à 100 %. » Aucun système d'identification ne peut garantir l'unicité absolue, mais les UUID correctement utilisés offrent une résistance aux collisions astronomiquement élevée. Pour l'UUID v4, la probabilité d'au moins une collision sur un milliard d'IDs générés est d'environ 1 sur 10¹⁴. Pour les versions basées sur le temps (v1, v6, v7), les collisions entre différents nœuds nécessitent une réinitialisation simultanée de l'horloge sur plusieurs machines. Le taux de collision pratique sur tous les UUID correctement implémentés est effectivement nul.

« L'UUID v4 est toujours le meilleur choix. » L'UUID v4 est le plus polyvalent et convient à la plupart des applications, mais il n'est pas optimal pour tous les scénarios. Pour les clés primaires de base de données, la distribution aléatoire de v4 provoque des divisions de pages et une amplification d'écriture dans les index B-tree. L'UUID v7 offre un tri chronologique qui maintient les index plus efficacement. Pour les identifiants déterministes qui doivent être reproductibles à partir d'un nom, v3 ou v5 est le seul choix correct.

« Les UUID sont complètement aléatoires. » Seul l'UUID v4 est complètement aléatoire (122 bits d'entropie). Les UUID v1, v2, v6 et v7 intègrent des horodatages, les rendant partiellement prévisibles — des informations qui pourraient fuiter via l'identifiant. Les UUID v3 et v5 sont déterministes pour une entrée donnée. Si l'imprévisibilité est une exigence (jetons de sécurité, identifiants de session), utilisez v4 avec l'API Web Crypto.

« Tous les UUID ont le même format. » Tous les UUID RFC 9562 partagent le format hexadécimal de 36 caractères 8-4-4-4-12, mais la structure interne diffère radicalement selon les versions. Un UUID v1 intègre l'adresse MAC et des bits d'horodatage ; l'UUID v4 est purement aléatoire ; l'UUID v7 combine un horodatage avec des bits aléatoires. Vous pouvez identifier la version par le 13e caractère (4 = v4, 7 = v7, etc.) et la variante par le 17e caractère (8, 9, a ou b).

« Les UUID ralentissent les performances de la base de données. » C'était partiellement vrai avec les anciennes versions de bases de données et les UUID v4 stockés comme chaînes ASCII. Les bases de données modernes (PostgreSQL avec le type uuid, MySQL 8+ avec UUID_TO_BIN, SQL Server) stockent les UUID comme des valeurs binaires de 16 octets avec support d'index natif. L'UUID v7 atténue davantage la fragmentation des index grâce à la génération ordonnée dans le temps. La différence de performance par rapport aux entiers auto-incrémentés est négligeable pour la plupart des charges de travail.

Alternatives

Plusieurs alternatives au Générateur d'UUID Toollect existent, chacune adaptée à différents flux de travail.

Outil / Méthode Meilleur pour Limitations
Générateur d'UUID Toollect Génération dans le navigateur, toutes les versions v1-v8, sans installation, confidentialité d'abord Nécessite internet pour le chargement initial de la page, non scriptable
Commande Unix uuidgen Génération par lots en terminal, scriptage, intégration pipeline Généralement seulement v1 et v4 ; varie selon l'implémentation de la plateforme
ULID IDs triables de 26 caractères base32, sûrs pour URL, insensibles à la casse Pas de bits de version/variante ; non compatible UUID ; seulement 80 bits d'aléatoire
NanoID IDs courts sûrs pour URL (21 caractères par défaut), alphabet et longueur configurables Pas un UUID ; pas de format standard ni de versionnement ; longueur variable selon la configuration
Snowflake (style Twitter) IDs de 64 bits ordonnés dans le temps, très compacts, haut débit dans les systèmes distribués Nécessite coordination d'ID de travailleur ; pas au format UUID ; implémentations spécifiques à la plateforme
Générateurs d'UUID en ligne (ex. uuidgenerator.net) Génération rapide d'UUID individuels hors ligne Limitée à une ou deux versions ; souvent sans aléatoire de qualité cryptographique ; peut envoyer des données au serveur
PostgreSQL gen_random_uuid() Génération côté base de données à l'INSERT PostgreSQL uniquement ; généralement seulement v4 ; pas de v7 ni versions basées sur nom sans extensions
Module uuid de Python Génération programmatique dans les applications Python Nécessite un environnement d'exécution Python ; non basé sur navigateur
Node.js crypto.randomUUID() Génération côté serveur Node.js Node.js uniquement ; manque de versions basées sur le temps et le nom
API Web Crypto (crypto.randomUUID) Génération native v4 dans le navigateur sans dépendances Prend en charge seulement v4 ; pas d'options de formatage ni d'UUID basés sur le nom

Pour la plupart des utilisateurs qui ont besoin d'une génération d'UUID instantanée, privée et multi-versions sans quitter le navigateur, le Générateur d'UUID Toollect offre l'ensemble de fonctionnalités le plus complet.

Confidentialité des données

Le Générateur d'UUID Toollect traite chaque octet de vos données entièrement dans votre navigateur. Aucune donnée que vous saisissez — noms, espaces de noms ou identifiants générés — n'est transmise à un serveur, stockée dans une base de données ou enregistrée dans un système.

Toute la génération utilise l'API Web Crypto intégrée de JavaScript (crypto.getRandomValues, crypto.randomUUID, crypto.subtle.digest). La page de l'outil n'inclut aucun script d'analyse, pixel de suivi, cookie ou incorporation tierce. Aucune entrée localStorage ou sessionStorage n'est créée ou lue.

Après le chargement initial de la page, le Générateur d'UUID fonctionne entièrement hors ligne — générez des identifiants même en mode avion avec zéro activité réseau. Vous pouvez le vérifier en inspectant l'onglet Réseau dans les outils de développement de votre navigateur ou en vous déconnectant complètement d'internet.

Dépannage

Problème Cause probable Solution
La sortie UUID v4 se répète entre générations crypto.getRandomValues() peut être simulé ou indisponible dans les environnements de test Dans les navigateurs de production, crypto.getRandomValues() retourne toujours une entropie fraîche. Testez en générant dix UUID à la suite — ils devraient tous différer.
L'UUID basé sur le nom (v3/v5) n'affiche aucune sortie Le champ Nom est vide ou l'espace de noms personnalisé est invalide Assurez-vous que le champ Nom contient du texte. Si vous utilisez un espace de noms personnalisé, vérifiez qu'il s'agit d'un UUID valide au format standard (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx).
La validation de l'espace de noms personnalisé échoue Le format UUID est incorrect — tirets manquants, longueur erronée ou caractères hexadécimaux invalides Saisissez l'espace de noms comme un UUID complet de 36 caractères incluant les tirets. L'outil valide le format avant de générer.
Le bouton Copier ne fonctionne pas L'API du presse-papiers du navigateur nécessite un contexte sécurisé ou un geste de l'utilisateur Assurez-vous que la page est servie via HTTPS. Le bouton Copier utilise navigator.clipboard.writeText(), qui fonctionne dans tous les navigateurs modernes sur les pages HTTPS.
L'UUID v1 affiche des valeurs inattendues L'horodatage ou la séquence d'horloge peuvent déborder L'UUID v1 utilise des ticks de 100 ns depuis octobre 1582. Le cycle d'horloge en 2026 est bien dans la plage de 60 bits (~292 ans). Les séquences d'horloge se réinitialisent naturellement si l'heure système recule.
Le navigateur ne supporte pas crypto.randomUUID Version de navigateur ancienne L'outil utilise crypto.getRandomValues() en interne comme solution de repli. Supporté dans Chrome 80+, Firefox 75+, Safari 13+, Edge 80+.
Les valeurs UUID v7 ne sont pas strictement croissantes Deux générations dans la même milliseconde produisent le même préfixe d'horodatage L'UUID v7 utilise une précision milliseconde. Dans la même milliseconde, plusieurs générations partagent le même horodatage ; le suffixe aléatoire change à chaque fois. C'est volontaire et n'affecte pas le tri de l'index de base de données.

Spécifications techniques

Le Générateur d'UUID Toollect est conçu pour la correction, la performance et la compatibilité entre navigateurs.

Conformité aux normes

Aspect Spécification
RFC RFC 9562 (remplace RFC 4122)
Format UUID 128 bits, xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Variante Variante RFC 9562 (10xxxxxx)
Casse Minuscules par défaut, majuscules commutable
Tirets Inclus par défaut, supprimables avec option sans tirets

Détails de l'algorithme par version

Version Source d'entropie Temps de génération
v1 performance.now() pour l'horodatage, crypto.getRandomValues() pour séquence d'horloge et nœud < 1 ms
v2 Comme v1 avec UID/GID POSIX (local), champ nœud adapté < 1 ms
v3 MD5 via crypto.subtle.digest() ~2-5 ms (asynchrone)
v4 crypto.getRandomValues() < 1 ms
v5 SHA-1 via crypto.subtle.digest() ~2-5 ms (asynchrone)
v6 Même horodatage que v1 mais réorganisé (temps haut d'abord) < 1 ms
v7 Date.now() pour l'horodatage, crypto.getRandomValues() pour le suffixe aléatoire < 1 ms
v8 crypto.getRandomValues() pour les bits aléatoires < 1 ms

Compatibilité navigateur

Navigateur Version minimale Statut
Google Chrome 80+ Support complet
Mozilla Firefox 75+ Support complet
Apple Safari 13+ Support complet
Microsoft Edge 80+ Support complet
Samsung Internet 13+ Support complet
Opera 67+ Support complet

Confidentialité et sécurité

  • Zéro transmission de données : toute la génération se produit dans la mémoire du navigateur
  • Aucun cookie, localStorage ou sessionStorage utilisé
  • Aucun script d'analyse ou de suivi sur la page de l'outil
  • Entièrement fonctionnel hors ligne après le chargement initial de la page
  • Aucune inscription, connexion ou clé API requise
  • Aléatoire cryptographiquement sécurisé via l'API Web Crypto

Fonctionnalités

  • Générez toutes les versions d'UUID v1 à v8, y compris basées sur le temps (v1, v6, v7), aléatoires (v4), basées sur le nom (v3, v5), sécurité DCE (v2) et personnalisées (v8)
  • Génération aléatoire cryptographiquement sécurisée via l'API Web Crypto sans transmission réseau
  • Basculez entre majuscules et supprimez les tirets pour des UUID compacts ou prêts à l'affichage
  • Génération d'UUID basée sur le nom avec espaces de noms intégrés (DNS, URL, OID, X.500) et espace de noms personnalisé avec validation
  • Traitement 100 % côté client – aucune donnée envoyée à un serveur, sans inscription ni installation
  • Génération et copie en un clic avec résultats instantanés sur tous les navigateurs et appareils modernes

Questions fréquentes

Qu'est-ce qu'un UUID ?
Un UUID (Identifiant Universel Unique) est un identifiant de 128 bits normalisé par la RFC 9562. Il permet de générer des identifiants uniques sans coordination centrale dans les systèmes distribués. Les UUID existent en plusieurs versions, chacune utilisant un algorithme différent — basé sur le temps (v1, v6, v7), aléatoire (v4), hachage basé sur le nom (v3, v5) et autres — avec environ 5,3 × 10³⁶ valeurs possibles pour la version aléatoire seule.
Quelle version d'UUID devrais-je utiliser ?
L'UUID v4 est le choix le plus courant pour des usages généraux en raison de sa simplicité et de son caractère aléatoire. L'UUID v7 est recommandé pour les clés primaires de bases de données où le tri chronologique améliore les performances des index B-tree. L'UUID v5 est idéal lorsque vous avez besoin d'identifiants déterministes dérivés d'un nom et d'un espace de noms. L'UUID v1 convient aux systèmes distribués nécessitant des identifiants ordonnés dans le temps sans coordination, bien que v6 et v7 soient des alternatives modernes.
Les UUID sont-ils garantis uniques ?
Aucun système d'identification ne peut garantir l'unicité absolue, mais les UUID générés correctement rendent les collisions astronomiquement improbables. Pour l'UUID v4, générer un milliard d'UUID par seconde pendant 100 ans n'aurait qu'une probabilité de collision d'environ 50 %. Les versions basées sur le temps (v1, v6, v7) incluent des identifiants de nœud uniques et des valeurs de séquence d'horloge. En pratique, les collisions d'UUID sont virtuellement inexistantes lorsqu'on utilise des sources aléatoires appropriées et des identifiants de nœud uniques.
Ce générateur d'UUID est-il sûr pour une utilisation en production ?
Oui. L'outil utilise l'API Web Crypto (crypto.getRandomValues et crypto.randomUUID), qui est cryptographiquement sécurisée et soutenue par les sources d'entropie du système d'exploitation. Toute la génération se produit entièrement dans votre navigateur — aucune donnée n'est envoyée à un serveur, stockée ou enregistrée. Pour les UUID basés sur le nom v3 et v5, le hachage utilise les méthodes de digest SubtleCrypto intégrées du navigateur.
Quelle est la différence entre UUID v3 et v5 ?
v3 et v5 génèrent tous deux des UUID déterministes à partir d'un espace de noms et d'un nom par hachage. UUID v3 utilise MD5 (hachage 128 bits) et UUID v5 utilise SHA-1 (hachage 160 bits tronqué à 128 bits). La RFC 9562 recommande v5 plutôt que v3 car SHA-1 est plus résistant aux collisions que MD5, qui est considéré comme cryptographiquement cassé. Pour les nouveaux systèmes, utilisez UUID v5 sauf si l'interopérabilité avec un système existant basé sur v3 est requise.
Puis-je utiliser des UUID comme clés primaires de base de données ?
Oui, mais les performances dépendent de la version choisie. Les valeurs UUID v4 sont distribuées aléatoirement, ce qui peut fragmenter les index B-tree. UUID v6 et v7 sont ordonnés dans le temps — les nouvelles valeurs se classent séquentiellement, minimisant les divisions de page et améliorant les performances d'écriture. De nombreuses bases de données modernes (PostgreSQL, MySQL 8+, SQL Server) prennent en charge les types et index UUID natifs.
Un GUID est-il identique à un UUID ?
Oui. GUID (Globally Unique Identifier) est l'implémentation Microsoft du standard UUID. Bien que GUID désignait à l'origine une variante spécifique de UUID, les deux termes sont utilisés de manière interchangeable en pratique. Les GUID générés par cet outil suivent le standard UUID RFC 9562 et sont entièrement compatibles avec tous les systèmes qui acceptent les UUID standard.
ESC