Qu’est-ce qu’un UUID ?
Un UUID (identifiant universellement unique) est une valeur de 128 bits représentée par une chaîne de 36 caractères telle que 550e8400-e29b-41d4-a716-446655440000. Le format et la sémantique des versions sont définis par la RFC 4122 pour v1 à v5, et par la RFC 9562 pour les versions plus récentes v6, v7 et v8. Cet outil génère v4 (purement aléatoire), v1 (horodatage plus identifiant de nœud aléatoire) et v7 (préfixe d'horodatage Unix en millisecondes plus suffixe aléatoire, triable par moment de génération) — le tout dans votre navigateur, via l'API Web Crypto de la plateforme. Aucune donnée n'est envoyée à un serveur.
Comment fonctionne la génération d’UUID ?
Chaque version arbitre différemment entre déterminisme, triabilité et entropie. L’outil choisit le bon algorithme selon votre sélection :
- v4 (aléatoire) appelle
crypto.randomUUID()du navigateur, qui retourne 122 bits d'aléatoire cryptographique avec les 6 bits fixes (version0100et variante10) placés aux bonnes positions. Les collisions sont astronomiquement improbables — il faudrait générer environ 2,71 trillions d'UUID v4 pour atteindre un seul doublon avec une probabilité de 50 %. - v1 (horodatage + nœud) empaquette un horodatage grégorien de 60 bits (tics de 100 nanosecondes depuis le 15-10-1582) dans
time_low/time_mid/time_hi_and_version, fixe le quartet de version à0001, choisit une séquence d'horloge de 14 bits avec les bits de variante définis et utilise un identifiant de nœud aléatoire de 48 bits avec le bit multicast forcé à un (la RFC 4122 §4.5 autorise explicitement un identifiant de nœud aléatoire en l'absence d'adresse MAC matérielle — le bit multicast l'étiquette comme non-MAC). - v7 (horodatage triable), selon la RFC 9562 §5.7, place un horodatage Unix de 48 bits en millisecondes en big-endian, puis la version 4 bits
0111, puis 12 bits aléatoires, puis la variante 2 bits10, puis 62 bits aléatoires supplémentaires. Comme l'horodatage occupe les bits les plus significatifs, les UUID v7 se trient lexicographiquement dans l'ordre de génération — une propriété qu'aucune autre version d'UUID n'offre sans encodage supplémentaire. - Toute l'aléa provient de
crypto.getRandomValues(), le RNG cryptographiquement sûr du navigateur. v1 et v7 intègrent tous deux une garde monotone intra-tic pour que deux appels consécutifs dans le même tic d'horloge classent toujours le second au-dessus du premier — crucial pour les générations en lot qui dépassent la cadence de la milliseconde. - Le pipeline de formatage s'exécute après la génération. Vous pouvez supprimer les tirets, passer en majuscules, encadrer la valeur d'accolades (
{…}— la convention GUID de Microsoft), ou rendre les 16 octets bruts en base64 (sortie de 22 caractères, sans padding). Le mode base64 supplante les autres options de format car base64 est sa propre représentation.
Pourquoi utiliser ce générateur UUID ?
- Rien ne quitte votre navigateur. L'API Web Crypto s'exécute localement ; la page n'effectue aucune requête réseau après le chargement initial du document. Ouvrez les DevTools, cliquez sur Générer, et l'onglet Réseau restera silencieux.
- Sortie conforme aux RFC. v4 suit la RFC 4122 §4.4, v1 suit §4.2 et §4.5, et v7 suit la RFC 9562 §5.7. Le quartet de version et les bits de variante sont placés là où les normes les exigent — chaque UUID valide l'expression régulière canonique de sa version.
- v7 triable pour clés de base de données. Un UUID v7 utilisé comme clé primaire clustered dans Postgres, MySQL ou SQL Server conserve des insertions en append sur l'index — pas de splits de page, pas d'E/S aléatoire — tout en restant globalement unique. v4 ne peut pas le faire car ses bits sont aléatoires.
- Génération en lot sans limites. Générez 1, 10, 100 ou 1 000 UUID à la fois. Pas de quota, pas d'inscription — l'outil s'exécute dans votre onglet, donc le plafond est votre CPU, pas le quota d'API d'un fournisseur.
Quelles sont les applications courantes des UUID ?
Les UUID apparaissent partout où un système a besoin d’un identifiant globalement unique sans coordination avec une autorité centrale :
- Clés primaires de base de données. Les entiers auto-incrémentés divulguent les nombres de lignes et cassent le sharding. Les UUID sont stables entre shards, sûrs à fusionner entre régions et (avec v7) gardent les insertions B-tree chaudes sans splits de page. Une application typique génère l'UUID côté client, l'envoie dans l'INSERT et n'a jamais à faire d'aller-retour serveur pour la clé.
- Identifiants de corrélation de requête. Un middleware HTTP attache un UUID v4 à chaque requête entrante, le journalise dans chaque span et le propage en aval (souvent comme en-tête
X-Request-Id). Quand un client signale un bug, l'ingénieur support colle l'identifiant et la trace complète apparaît — entre services et fuseaux horaires — sans ambiguïté. - Clés d'idempotence. Les API de paiement (Stripe, Adyen, Square) acceptent un en-tête
Idempotency-Keypour qu'une requête ré-essayée ne facture jamais deux fois le client. Un UUID généré côté client garantit l'unicité de la clé par opération logique, ce qui est le contrat exigé par ces API.
À quoi ressemble un exemple d’UUID ?
Dans Node.js ou un navigateur moderne, la ligne unique crypto.randomUUID() renvoie un nouvel UUID v4 — par exemple 3f50b5a8-2c54-4b9c-9c1f-3e5c7e2b8d12. Utilisez-le comme identifiant de requête ou clé d'idempotence. Quand l'UUID va dans une colonne de base de données qui sera la clé primaire clustered, générez plutôt v7 : deux valeurs v7 produites à une milliseconde d'écart, comme 0190a3b0-7d4f-7c9e-8b21-a4d6f0bd9c11 et 0190a3b0-7d50-7f15-9c4e-72b3e0c1d8a4, se trient lexicographiquement dans l'ordre de génération. Le type uuid de Postgres stocke les deux versions de manière identique — la différence apparaît au moment de l'écriture de l'index, où v7 ajoute à droite du B-tree alors que v4 disperse les insertions et force des E/S aléatoires.
Ce générateur d'UUID fait une seule chose : transformer un clic en un ou plusieurs identifiants conformes aux RFC, formatés comme vous le souhaitez, sans envoyer votre requête à un serveur. Choisissez une version, choisissez un nombre, choisissez un format — générez, copiez, passez à la suite.