Skip to main content

Générez des identifiants UUID v4 uniques.

Tous les calculs sont effectués localement dans votre navigateur. Aucune donnée n'est envoyée au serveur.

Les résultats sont fournis à titre informatif. Vérifiez-les auprès d'autres sources.

Les UUID : ce que signifient les chiffres

Un UUID est un identifiant de 128 bits écrit en 32 caractères hexadécimaux selon le motif 8-4-4-4-12. La version 4 — celle que génère cet outil — remplit presque tous ces bits de données aléatoires, si bien que deux valeurs générées indépendamment ne sont, en pratique, jamais identiques.

Comment ça marche

  • Génère 128 bits, puis en écrase six : quatre pour la version (4) et deux pour la variante.
  • Restent 122 bits réellement aléatoires, d'où vient la résistance aux collisions.
  • Met en forme le résultat en 8-4-4-4-12 caractères hexadécimaux séparés par des tirets.
  • Utilise crypto.getRandomValues du navigateur, source cryptographiquement sûre — pas Math.random.
xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx
                 ↑    ↑
           version  variante (8, 9, a ou b)

bits aléatoires = 128 − 6 = 122

Exemple chiffré

Lecture d'un vrai UUID v4, position par position.

  1. f47ac10b-58cc-4372-a567-0e02b2c3d479
  2. position 15 (début du troisième groupe) : 4 → version 4, générée aléatoirement
  3. position 20 (début du quatrième groupe) : a → la variante RFC 4122
  4. les 122 autres bits sont aléatoires
  5. probabilité de collision : après un milliard d'UUID, environ 1 sur 10^22

Il faudrait générer environ 2,7 × 10^18 UUID pour atteindre 50% de chances d'une seule collision — un nombre assez grand pour qu'un doublon soit un bug dans votre code, pas de la malchance.

Lire le résultat

  • Les UUID v4 ne se trient pas. En clé primaire, ils dispersent les écritures dans l'index B-tree, ce qui le fragmente et ralentit les insertions sur de grandes tables. La version 7, qui place un horodatage dans les bits de poids fort, a été conçue pour cela et se trie chronologiquement.
  • Un UUID est un identifiant, pas un secret. Il est indevinable en pratique, mais le traiter comme un jeton d'accès signifie que quiconque le voit dans une URL, un journal ou un en-tête referer détient la clé.
  • Stockez-les en 16 octets binaires ou dans une colonne uuid native, pas en chaîne de 36 caractères. La forme texte plus que double le stockage et ralentit chaque comparaison.
  • La casse n'a pas d'importance et les tirets sont du formatage. Comparez sous forme canonique, sinon vous obtiendrez de fausses divergences entre systèmes.

Questions fréquentes

Quelles sont les chances réelles de collision ?
Avec 122 bits aléatoires, générer un milliard d'UUID par seconde pendant un siècle laisse la probabilité de toute collision négligeable. En pratique, chaque doublon signalé se révèle être un générateur initialisé avec une graine fixe ou une valeur réutilisée.
v4 ou v7 pour des clés de base de données ?
v7 pour tout ce que vous insérez en volume, car il se trie par date de création et garde les écritures d'index séquentielles. v4 reste le bon choix quand vous ne voulez précisément pas que l'identifiant révèle sa date de création.