RevealTheme logo

Générateur d'UUID

Générez des UUID v4 (identifiants uniques universels aléatoires). Chaque clic en produit un nouveau.

Comment utiliser cet outil

  1. 1

    Click the Generate UUID button to produce a fresh random v4 UUID.

  2. 2

    Read the 36-character identifier shown in the canonical 8-4-4-4-12 format below the button.

  3. 3

    Click Copy to put the UUID on your clipboard for pasting into code, a database, or a config file.

  4. 4

    Click Generate UUID again whenever you need another one — every click replaces the value with a brand-new random UUID.

Qu'est-ce qu'un UUID et pourquoi les logiciels l'utilisent-ils ?

Un UUID (Universally Unique Identifier, parfois appelé GUID dans les contextes Microsoft) est une valeur de 128 bits utilisée pour identifier des entités sans nécessiter de coordination entre les systèmes. L'idée d'un UUID est que deux programmes distincts, s'exécutant sur deux machines distinctes et sans se connaître, peuvent générer des UUID et supposer avec confiance qu'ils n'entreront jamais en collision. Cette propriété rend possible la conception de systèmes distribués : vous pouvez laisser n'importe quel service créer des identifiants localement sans compteur central, fusionner des bases de données sans renuméroter les lignes et prégénérer des identifiants côté client avant même que le serveur ne voie la requête. Les UUID comptent cinq versions canoniques définies par la RFC 4122 : v1 (basée sur le temps + adresse MAC, divulgue l'heure de création et l'identité de la machine), v3 (hachage MD5 d'un espace de noms + nom), v4 (aléatoire, la plus courante), v5 (hachage SHA-1 d'un espace de noms + nom). La RFC 9562 a ajouté la v6 (ordonnée par le temps, comme la v1 mais sans divulguer l'adresse MAC) et la v7 (timestamp Unix + aléatoire, conçue spécifiquement pour les clés primaires de bases de données car elle se classe chronologiquement). Cet outil génère des UUID v4 au moyen de crypto.randomUUID(), qui utilise une aléatoire cryptographiquement robuste fournie par le système d'exploitation sous-jacent du navigateur, la même source que celle dont proviennent les clés TLS. La sortie est identique octet par octet à celle de uuid.uuid4() en Python, de crypto.randomUUID() en Node et de google/uuid.NewRandom() en Go.

Cas d'usage courants

  • Clés primaires de base de données : remplacez les entiers auto-incrémentés lorsque vous devez fusionner des bases de données ou générer des ID côté client.

  • Identifiants de session dans les cookies : assez longs pour qu'une attaque par force brute d'un ID de session valide soit irréalisable sur le plan informatique.

  • Clés d'idempotence pour les requêtes d'API : répétez la requête en toute sécurité ; le serveur déduplique par UUID.

  • Identifiants de fichiers téléversés : nommez les fichiers téléversés par UUID pour éviter les collisions de chemins et ne pas exposer les noms de fichiers d'origine.

  • Identifiants de traçage distribué : chaque requête reçoit un UUID, propagé à travers les services pour corréler les journaux.

  • Identifiants de fixtures de test : un aléatoire prévisible pour les données de test sans avoir à coordonner les ID entre les cas de test.

Questions fréquentes

Que signifie v4 ?
Version 4 : elle est générée à partir de 122 bits d'aléatoire plus 6 bits fixes de version/variante. Autres versions : la v1 repose sur un timestamp + MAC (ne l'utilisez pas ; elle divulgue l'identité de la machine et l'heure), la v3/v5 sont des hachages déterministes d'un espace de noms + nom (utiles pour des identifiants dérivés stables), la v7 est aléatoire avec préfixe de timestamp (excellente pour les bases de données car elle se classe chronologiquement). Pour la plupart des cas, la v4 est le bon choix par défaut.
À quel point les UUID sont-ils réellement uniques ?
Les UUID v4 ont 122 bits effectifs d'aléatoire : 5,3×10^36 valeurs possibles. Il faudrait générer 2,71 trillions d'UUID avant d'atteindre une probabilité de collision de 50 %. Pour situer, si vous génériez un milliard d'UUID par seconde, il vous faudrait 85 ans pour atteindre ce seuil. Les collisions pratiques ne se produisent pas avec un bon générateur de nombres aléatoires.
Dois-je utiliser la v4 ou la v7 pour les clés primaires de bases de données ?
La v7 est meilleure pour les bases de données. Les UUID v4 sont aléatoires, ce qui signifie que les nouvelles lignes se dispersent au hasard dans les index B-tree, provoquant une fragmentation de l'index et des insertions lentes à grande échelle. La v7 antépose le timestamp, de sorte que les nouveaux UUID se classent toujours après les anciens, maintenant des schémas d'insertion séquentiels. PostgreSQL, MySQL et SQL Server bénéficient de la v7. Si votre bibliothèque ne prend pas encore en charge la v7, les ULID sont une alternative populaire ayant la même propriété.
Est-il sûr d'utiliser crypto.randomUUID() ?
Oui. Il est spécifié par le WHATWG et implémenté dans tous les navigateurs modernes au moyen du générateur cryptographique de nombres aléatoires du système d'exploitation (la même source que celle dont proviennent les clés TLS). La sortie est imprévisible et répartie uniformément sur tout l'espace des UUID v4.
Quelle est la différence entre UUID et GUID ?
Ils sont fonctionnellement identiques : GUID est le terme de Microsoft pour le même concept. Le format d'octets diffère dans certaines API Microsoft (Guid.ToByteArray() de .NET utilise un ordre d'octets mixte sur les trois premiers champs) ; lorsque l'interopérabilité compte, surveillez donc l'ordre des octets. Le format de chaîne canonique (8-4-4-4-12) est identique.
Puis-je raccourcir un UUID pour l'utiliser dans des URL ?
Oui : encodez les 128 bits en Base62 ou Base64 au lieu du format hexadécimal canonique. Base62 vous donne 22 caractères ; Base64 en donne 22 avec remplissage ou 22 dans sa variante sécurisée pour les URL. Certaines bibliothèques utilisent aussi des formats d'« UUID court ». Les bits sous-jacents ne changent pas ; seul l'encodage d'affichage diffère.
Pourquoi mon UUID commence-t-il par les mêmes caractères qu'un autre ?
C'est une coïncidence : les UUID v4 sont aléatoires. Avec 36 caractères hexadécimaux au total et seulement 22 caractères hexadécimaux aléatoires (4 sont réservés à la version/variante et 4 sont des tirets), certaines correspondances de préfixe sont inévitables lorsque vous en générez beaucoup. L'UUID complet est unique même si les préfixes correspondent.

Outils connexes