Générateur d'UUID
DévGénère des UUID aléatoires cryptographiques (RFC 4122 v4) avec crypto.randomUUID.
Sur cette page
Qu’est-ce qu’un UUID ?#
Un UUID (Universally Unique Identifier, aussi appelé GUID sur les systèmes Microsoft) est un identifiant de 128 bits rendu sous forme de 32 chiffres hexa regroupés en 8-4-4-4-12, par exemple c9bf1d4d-7d4f-4b3a-8b2c-1e5f6a7b8c9d. L’idée est simple mais puissante : générer des identifiants à la demande, sans autorité centrale ni coordination entre machines, tout en gardant la probabilité d’une collision effectivement nulle. C’est cette propriété qui fait des UUID la stratégie de clé primaire par défaut des bases de données distribuées, le champ id de presque toute ressource d’API JSON, les correlation IDs qui relient des lignes de journal entre microservices, et les noms de fichiers des blobs téléversés.
Cette page génère des UUID RFC 4122 version 4 — la variante bâtie à partir de bits aléatoires. La version 4 est celle que vous voulez dans presque tout cas moderne : elle ne porte aucune adresse MAC de machine (contrairement à v1), n’incorpore aucune hiérarchie de namespace (contrairement à v3/v5), et repose purement sur l’aléa cryptographique pour l’unicité. Vous pouvez générer un UUID unique ou un lot allant jusqu’à 10 000 d’un coup, en minuscules ou en majuscules, entièrement dans votre navigateur.
Deux des 32 chiffres hexa ne sont en réalité pas aléatoires — ils déclarent le propre type de l’UUID. Le quartet de version à la position 14 (le premier caractère du troisième groupe) est toujours 4, et le quartet de variante à la position 19 (le premier caractère du quatrième groupe) est toujours 8, 9, a ou b. C’est pourquoi chaque valeur que vous voyez sur cette page se lit xxxxxxxx-xxxx-4xxx-[89ab]xxx-xxxxxxxxxxxx. Ces deux positions fixes font aussi office d’empreinte auto-descriptive : toute chaîne qui correspond à cette forme est un UUID v4, et une regex rapide peut en valider des millions.
Comment l’utiliser#
- Réglez le champ Nombre en haut selon le nombre d’UUID voulus — de 1 à 10 000. Le champ est clamé à cette plage.
- Cochez Majuscules si vous avez besoin d’une sortie tout en majuscules (certains systèmes hérités et les conventions GUID Microsoft préfèrent
C9BF1D4D-…). Laissez décoché pour le défaut minuscule qu’utilisent la plupart des piles modernes. - Cliquez sur Générer. Les valeurs apparaissent dans la zone de sortie à chasse fixe, une par ligne.
- Cliquez sur Copier pour copier tout le lot dans le presse-papiers, prêt à coller dans un
INSERTSQL, un CSV, un fixture de test ou un script de seed. - Cliquez à nouveau sur Générer quand vous voulez un lot frais — chaque clic tire de nouveaux bits aléatoires et produit des valeurs qui n’ont jamais existé.
Fonctionnalités clés#
- Véritable aléa cryptographique. Utilise le
crypto.randomUUID()du navigateur dans les contextes sécurisés, avec un replicrypto.getRandomValuesqui applique un échantillonnage par rejet sur les bits de version et de variante — et nonMath.random(), qui ne convient pas aux identifiants. - Génération par lot. Jusqu’à 10 000 UUID en un clic, un par ligne, pour seed-er une base de données ou un fichier de fixtures sans le scripter vous-même.
- Minuscules ou majuscules. Un seul interrupteur couvre les deux conventions.
- Conforme RFC 4122 v4. Le quartet de version est toujours
4et le quartet de variante toujours8/9/a/b, donc chaque valeur valide contre la regex v4 standard. - 100 % côté client. Pas de backend, pas de télémétrie. Les UUID que vous générez ici ne sont enregistrés nulle part — ils sont à vous dès qu’ils apparaissent.
Exemple commenté#
Cliquez sur Générer avec Nombre laissé à son défaut de 5 et Majuscules décoché, et vous obtenez cinq lignes comme celles-ci (vos valeurs réelles différeront — elles sont aléatoires) :
7f3a9c2e-1b4d-4e8f-a6c3-9d2b8e1f0a47
2c8d4f1a-9e3b-47a2-8c6d-1f5e9a0b3c28
a1b2c3d4-e5f6-4789-abcd-ef0123456789
9e8d7c6b-5a4f-3210-ba98-76543210fedc
4f3e2d1c-0b9a-8765-4321-fedcba987654
Regardez de près le troisième groupe de n’importe quelle ligne : il commence toujours par 4. Regardez le quatrième groupe : il commence toujours par 8, 9, a ou b. Ces deux caractères ne sont pas aléatoires — ce sont les marqueurs de version et de variante, et ils sont la raison pour laquelle un validateur d’une ligne peut confirmer qu’une chaîne est un véritable UUID v4.
Si vous cochez Majuscules et régénérez, la même forme ressort en capitales, par ex. 7F3A9C2E-1B4D-4E8F-A6C3-9D2B8E1F0A47 — bits identiques, juste rendus pour les systèmes qui attendent des GUID majuscules.
FAQ#
Un UUID v4 est-il vraiment unique ? Aurai-je un doublon un jour ?#
Les chiffres deviennent absurdes vite. Un seul UUID v4 porte 122 bits d’aléa réel (128 moins les 4 bits de version et les 2 bits de variante). Pour avoir ne serait-ce qu’une chance sur deux de collision, il faudrait générer environ 2,71 × 10^36 UUID — soit un milliard de milliards de milliards par seconde pendant plus longtemps que l’âge de l’univers. Pour toute base de données ou système réaliste, vous pouvez tenir les collisions pour impossibles, et vous n’avez pas besoin de les vérifier.
Est-il sûr d’utiliser ces UUID comme clés primaires de base de données ?#
Oui — la version 4 est le choix le plus courant précisément parce qu’elle n’exige aucune coordination. Seule réserve : la fragmentation d’index. Les clés purement aléatoires se dispersent dans un B-tree, donc sur une table PostgreSQL ou MySQL à très fort taux d’écriture, vous pouvez préférer une variante UUIDv7 (ordononnée dans le temps). Pour les identifiants de ressource au niveau applicatif, les correlation IDs et la plupart des tables, le v4 pur convient.
Pourquoi ne pas simplement utiliser Math.random() pour construire un UUID ?#
Parce que Math.random() n’est pas cryptographiquement sûr — sa sortie peut être assez prévisible pour qu’un attaquant qui observe quelques ID puisse deviner les autres. Cet outil utilise délibérément crypto.randomUUID() (et un repli crypto.getRandomValues avec gestion correcte de version/variante), qui tire depuis le CSPRNG du système d’exploitation. Pour tout ce qui identifie un utilisateur, une session ou une ressource, cette distinction compte.
Puis-je générer des UUID version 1, version 5 ou nommés ici ?#
Non — cette page est volontairement limitée à v4, parce que v4 couvre l’écrasante majorité des cas réels et n’exige aucune entrée au-delà d’une source aléatoire. Si vous avez besoin d’un UUID v5 fondé sur un nom (déterministe à partir d’un nom et d’un namespace), c’est un calcul différent, qui appartient à votre code applicatif ou à un outil dédié.