Générateur d'UUID
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)
- Sélectionnez la version d'UUID dans le menu déroulant. La valeur par défaut est v4.
- Cliquez sur Générer ou appuyez sur Entrée. Un nouvel UUID apparaît instantanément dans le champ de sortie.
- 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.
- 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)
- Sélectionnez v3 ou v5 dans le menu déroulant de version du panneau basé sur le nom.
- Choisissez un espace de noms en sélectionnant l'une des options prédéfinies (DNS, URL, OID, X.500) ou Personnalisé.
- 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é.
- 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.
- 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
- Ouvrez l'outil dans votre navigateur. L'interface du Générateur d'UUID affiche deux panneaux.
- Dans le Bloc 1, assurez-vous que le menu déroulant de version est sur v4 (la valeur par défaut).
- Cliquez sur Générer. Un UUID v4 apparaît, par exemple
550e8400-e29b-41d4-a716-446655440000. - Cliquez sur Copier pour copier l'UUID dans votre presse-papiers, puis collez-le dans votre formulaire web ou requête API.
- Basculez Majuscules et cliquez à nouveau sur Générer pour produire
550E8400-E29B-41D4-A716-446655440000. - Basculez Sans tirets pour produire
550e8400e29b41d4a716446655440000pour 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.
- 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. - 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.
- 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.
- 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.
- Dans le Bloc 2, réglez la version sur v5.
- 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. - Saisissez l'URL de l'article dans le champ Nom, par exemple
https://example.com/articles/uuid-guide. - 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.
- 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