Générateur d’UUID
Générez des UUID v4 et v7 ordonnés dans le temps, en masse.
À propos de cet outil
Générez des identifiants UUID v4 aléatoires ou UUID v7 ordonnés dans le temps, un seul ou cent à la fois, grâce au générateur aléatoire cryptographiquement sûr du navigateur.
Mode d’emploi
- Choisissez v4 pour des identifiants entièrement aléatoires ou v7 pour des identifiants triés par date de création.
- Indiquez combien il vous en faut, jusqu’à 100.
- Choisissez les majuscules ou l’absence de tirets si votre système l’exige.
- Copiez-en un ou tous.
Questions
- Faut-il utiliser UUID v4 ou v7 ?
- v7 commence par un horodatage : les nouveaux identifiants sont donc triés après les anciens. Les index de base de données restent ainsi compacts et rapides, ce qui fait de v7 un bon choix par défaut pour les clés primaires. Utilisez v4 quand la date de création ne doit pas être visible.
- Deux UUID peuvent-ils entrer en collision ?
- En pratique, non. Un UUID v4 contient 122 bits aléatoires ; il faudrait en générer des milliards par seconde pendant de nombreuses années avant qu’une collision devienne probable.
- Ces UUID peuvent-ils servir de jetons en toute sécurité ?
- Ils sont générés avec le générateur aléatoire cryptographiquement sûr du navigateur, mais un UUID est un identifiant, pas un secret. Pour des jetons de session ou des clés d’API, utilisez une valeur aléatoire plus longue.
- Comment générer un UUID en JavaScript, en Python ou dans le shell ?
- Dans les navigateurs et Node.js, crypto.randomUUID() renvoie un v4. En Python, utilisez uuid.uuid4(), ou uuid.uuid7() à partir de Python 3.14. Sous macOS et Linux, uuidgen affiche un UUID aléatoire ; macOS l’affiche en majuscules. Pour générer rapidement des identifiants v7, ou jusqu’à 100 à la fois, utilisez cette page.
- Les clés UUID v7 se trient-elles correctement dans SQL Server ?
- Pas par défaut. Le type uniqueidentifier de SQL Server compare d’abord les six derniers octets : les UUID ordonnés dans le temps n’arrivent donc pas en fin d’index cluster. NEWSEQUENTIALID() est l’option séquentielle propre à SQL Server. PostgreSQL et MySQL avec BINARY(16) comparent les octets depuis le début : les v7 s’y trient donc correctement.
- Qu’est-ce que l’UUID nil ?
- C’est la valeur entièrement nulle 00000000-0000-0000-0000-000000000000, utilisée comme valeur fictive pour « aucun identifiant ». La RFC 9562 définit aussi un Max UUID dont tous les chiffres valent f. Aucun des deux n’est aléatoire : ne les utilisez jamais comme de vrais identifiants, et rejetez-les là où un vrai identifiant est attendu.
Qu’est-ce qu’un UUID et comment est-il structuré ?
Un UUID est un identifiant de 128 bits écrit sous la forme de 32 chiffres hexadécimaux répartis en cinq groupes : 8-4-4-4-12. Le premier chiffre du troisième groupe indique la version : un UUID v4 a donc toujours un 4 à cet endroit, et un v7 un 7. Le premier chiffre du quatrième groupe vaut 8, 9, a ou b, ce qui marque la variante standard. GUID est le nom que Microsoft donne à ce même format.
Dans un UUID v7, les 48 premiers bits sont le temps Unix en millisecondes : les 12 premiers chiffres hexadécimaux indiquent donc quand il a été créé. Convertissez-les en décimal avec le Convertisseur de bases numériques et collez le résultat dans le Convertisseur d’horodatage Unix. Les 74 bits restants sont aléatoires. Les identifiants créés dans la même milliseconde ne sont pas ordonnés entre eux ici, mais ceux de millisecondes différentes se trient toujours par date.
Comment stocker des UUID dans une base de données ?
Utilisez un type natif quand il existe. PostgreSQL propose uuid, qui occupe 16 octets et accepte les deux casses, avec ou sans tirets. gen_random_uuid() crée un v4 dans la base de données, et PostgreSQL 18 ajoute uuidv7(). Dans MySQL, stockez en BINARY(16) avec UUID_TO_BIN() et BIN_TO_UUID() plutôt qu’en CHAR(36), qui occupe plus de deux fois plus d’espace et alourdit chaque index.
La forme texte standard est en minuscules avec des tirets, et la RFC 9562 indique que les lecteurs doivent aussi accepter les majuscules. Certains systèmes attendent des majuscules, ou 32 chiffres sans tirets : les deux options sont donc disponibles ici, et la valeur reste la même dans tous les cas. Quand vous comparez des UUID sous forme de chaînes dans du code ou des journaux, normalisez d’abord la casse, sinon un GUID issu d’un outil Windows ne correspondra pas au même identifiant en minuscules.
UUID ou identifiant auto-incrémenté ?
Les entiers auto-incrémentés sont petits, rapides et faciles à lire, mais c’est la base de données qui les attribue : vous ne connaissez donc l’identifiant qu’après l’insertion. Ils révèlent aussi combien de lignes vous avez et permettent à n’importe qui de deviner les enregistrements voisins dans une URL. Les UUID peuvent être générés n’importe où, dans le navigateur, sur plusieurs serveurs ou hors ligne, puis fusionnés plus tard sans conflit.
La contrepartie est la taille : 16 octets au lieu de 4 ou 8, dans chaque index et chaque clé étrangère. UUID v7 supprime le principal problème de performance des clés aléatoires, car les nouvelles valeurs arrivent en fin d’index. ULID repose sur une idée similaire, un horodatage suivi de bits aléatoires sous une forme texte de 26 caractères, mais UUID v7 dispose d’un format standard et de types de colonnes natifs dans de nombreuses bases de données.
Quelque chose ne fonctionne pas, ou un résultat semble faux ? Signaler un problème avec cet outil