Aller au contenu principal

Générer un UUID

Le générateur produit en lot des UUID v4 aléatoires par cryptographie, des UUID v7 ordonnés dans le temps et des UUID v1 horodatés selon le calendrier grégorien grâce à l’API cryptographique du navigateur. Il examine aussi la version, la variante et l’horodatage d’un UUID existant. Aucun identifiant n’est transmis.

100 % local
Version UUID
Options de formatage
UUID générés (0 au total)

Qu’est-ce qu’un UUID et quelles différences entre v1, v4 et v7 ?

Un identifiant universel unique (UUID), ou GUID, est une valeur de 128 bits permettant d’identifier des objets dans un système distribué sans registre central. Sa forme textuelle usuelle contient 32 chiffres hexadécimaux et quatre traits d’union.

La norme RFC 4122, longtemps utilisée, a été remplacée en mai 2024 par la RFC 9562. Celle-ci définit notamment v7, dont l’horodatage en tête facilite le classement temporel.

Structure d’un UUID de 128 bits

La forme canonique répartit 32 chiffres hexadécimaux en cinq groupes 8-4-4-4-12, soit 36 caractères avec les traits d’union. Un chiffre hexadécimal indique la version et deux bits la variante.

xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx

time_low time_mid time_hi clock_seq node

M = version sur 4 bits (1, 4 ou 7)

N = variante RFC 4122 / RFC 9562 (8, 9, a ou b)

UUID v4 : aléa cryptographique

Dans v4, quatre bits indiquent la version et deux la variante. Les 122 bits restants sont aléatoires, pour 2¹²² ≈ 5,3 × 10³⁶ valeurs possibles. Le navigateur emploie une source d’aléa cryptographique.

Pour n UUID, la probabilité approximative d’au moins une collision est p ≈ 1 − exp(−n² / (2 × 2¹²²)). Elle reste extrêmement faible à une échelle ordinaire. En revanche, des clés primaires aléatoires peuvent pénaliser les index de base de données.

UUID v7 et index de bases de données (RFC 9562)

Dans un index B-tree, chaque nouvelle clé v4 peut arriver sur une page différente. Lorsque l’index dépasse la mémoire disponible, les lectures dispersées et les divisions de pages peuvent augmenter. Des clés triables dans le temps favorisent les insertions voisines.

UUID v7 débute par un horodatage Unix de 48 bits en millisecondes. Les autres bits variables peuvent contenir de l’aléa ou un compteur selon le générateur. Il permet ainsi un ordre temporel approximatif sans service central d’attribution.

  1. 48 bits : millisecondes depuis l’époque Unix ; le champ couvre jusqu’à l’an 10889.
  2. 12 bits rand_a : aléa, fraction de milliseconde ou compteur pour les valeurs d’une même milliseconde.
  3. 62 bits rand_b : aléa ou séquence supplémentaire ; la méthode exacte dépend du générateur.

UUID v1 : l’ancien format temporel

UUID v1 compte les intervalles de 100 nanosecondes écoulés depuis le 15 octobre 1582. Historiquement, ses 48 derniers bits pouvaient contenir l’adresse MAC de la machine. Cet outil emploie un identifiant de nœud aléatoire.

L’agencement des champs temporels empêche le tri chronologique des chaînes v1 sans réordonner les octets. Pour une nouvelle application nécessitant un ordre temporel, v7 évite cette disposition et ne dépend pas d’une adresse MAC.

  • Ordre des champs : time_low est placé au début malgré ses bits temporels de poids faible.
  • Confidentialité : les anciennes implémentations pouvaient inclure une véritable adresse MAC et révéler des informations sur l’appareil.

Quels raccourcis clavier sont disponibles ?

Ctrl + Entrée / Cmd + EntréeGénérer immédiatement un nouveau lot
Tab / Maj + TabParcourir les versions, quantités et options de copie
ÉchapEffacer le champ d’inspection et réinitialiser la sélection

Questions fréquentes

Pourquoi préférer v7 à v4 pour une clé primaire ?

v4 répartit les insertions dans l’index. L’horodatage initial de v7 permet en général des insertions plus proches et peut limiter les divisions de pages. L’ordre des valeurs d’une même milliseconde dépend de l’implémentation.

Quelle est la probabilité de collision d’un UUID v4 ?

v4 dispose de 122 bits aléatoires. Pour n valeurs, p ≈ 1 − exp(−n² / (2 × 2¹²²)). Il faudrait plus de 103 billions de valeurs pour approcher une chance sur un milliard.

Comment les UUID sont-ils créés sans serveur ?

Le navigateur appelle crypto.randomUUID et crypto.getRandomValues, alimentés par la source cryptographique du système. La génération et l’inspection restent locales ; l’outil ne transmet aucun UUID.

Quelle date v1 encode-t-il et pourquoi le remplacer ?

v1 compte les pas de 100 nanosecondes depuis le 15 octobre 1582. D’anciennes variantes pouvaient intégrer une adresse MAC et leur chaîne n’était pas triable par date. v7 utilise des millisecondes Unix et des bits variables aléatoires.

Puis-je générer des milliers d’UUID pour des données de test ?

Oui, jusqu’à 5 000 par lot, avec choix de la casse, des traits d’union, guillemets, accolades et séparateurs : lignes, virgules ou tableau JSON.

Les UUID peuvent-ils servir de jetons de sécurité ?

v4 possède 122 bits aléatoires, mais des UUID finissent souvent dans les URL et journaux. Pour les sessions ou réinitialisations de mot de passe, utilisez des jetons émis et révocables par votre serveur. v1 et v7 révèlent l’heure de création.