Générateur UUID

Publicité

Générez des identifiants universellement uniques (UUID) pour vos applications.

Publicité

À propos de cet outil

L'Identifiant Universellement Unique (UUID) est l'une des briques fondamentales de l'informatique distribuée moderne. Standardisé pour la première fois en 1997 par la spécification DCE de l'Open Software Foundation et formalisé ensuite comme RFC 4122 en 2005, les UUID résolvent un problème d'une difficulté trompeuse : comment créer des identifiants garantis uniques sans autorité de coordination centrale ? La réponse réside dans les mathématiques et les probabilités. Un UUID v4 contient 122 bits aléatoires, produisant environ 5,3 x 10^36 valeurs possibles. Pour mettre cela en perspective, vous pourriez générer un milliard d'UUID chaque seconde pendant plus de 100 ans avant d'atteindre une probabilité de 50% d'une seule collision. Cette garantie mathématique fait des UUID l'épine dorsale des clés primaires de bases de données, des files de messages distribués, des jetons de session et des architectures microservices dans le monde entier. Ce générateur prend en charge plusieurs formats d'identifiants, chacun conçu pour des cas d'utilisation spécifiques. UUID v4 est le plus largement adopté, reposant uniquement sur l'aléatoire. UUID v7, défini dans le plus récent RFC 9562, intègre un horodatage Unix en millisecondes pour un tri chronologique naturel — un avantage majeur pour l'indexation des bases de données. UUID v1 combine un horodatage de 60 bits avec un identifiant de noeud. Au-delà des UUID, l'outil génère des ULID (Identifiants Lexicographiquement Triables Universellement Uniques) en Crockford Base32, et des NanoID — des identifiants compacts et surs pour les URL, populaires dans les applications frontend. Toute la génération utilise l'API Web Crypto du navigateur, garantissant un aléatoire cryptographiquement sécurisé. Aucune donnée ne quitte votre appareil — chaque identifiant est créé entièrement dans votre navigateur sans communication serveur.

Sources: RFC Editor

Comment Utiliser

  1. Sélectionnez un format (UUID v4/v7/v1, ULID ou NanoID) et le nombre à générer.
  2. Optionnellement, choisissez le formatage : majuscules, avec/sans accolades ou tirets.
  3. Cliquez sur 'Générer UUID' et copiez les résultats individuellement ou tous à la fois.

Standards UUID et Identite Distribuee

L'Identifiant Universellement Unique a ete standardise pour la première fois dans RFC 4122 (2005), bien que ses racines remontent à l'Apollo Network Computing System dans les années 1980 et au Distributed Computing Environment (DCE) de l'Open Software Foundation. Le problème fondamental que resolvent les UUID est la génération d'identifiants globalement uniques sans autorite de coordination centrale — essentiel pour les systèmes distribues ou plusieurs machines doivent créer independamment des ID qui ne colleront jamais. RFC 4122 a défini cinq versions d'UUID pour différents cas d'utilisation. La version 1 intégré un horodatage de 60 bits (intervalles de 100 nanosecondes depuis le 15 octobre 1582 — la reforme du calendrier gregorien) combine avec un identifiant de noeud de 48 bits à l'origine derive de l'adresse MAC. Bien que garantissant l'unicite, v1 exposait l'identite du materiel et le moment de création. Les versions 3 et 5 sont basees sur les noms : elles hachent un identifiant d'espace de noms combine avec un nom en utilisant MD5 (v3) ou SHA-1 (v5), produisant des UUID deterministes. La version 4 a remplace le determinisme par 122 bits d'aleatoire cryptographique, devenant la version la plus adoptee. Le dernier standard, RFC 9562 (2024), a introduit UUID v7 comme choix recommande pour les identifiants compatibles avec les bases de données. La version 7 intégré un horodatage Unix de 48 bits en millisecondes dans les bits les plus significatifs, suivis de bits aleatoires de remplissage. Cette conception créé des identifiants qui se trient chronologiquement — un avantage critique pour les index B-tree des bases de données ou les UUID v4 aleatoires causent une fragmentation excessive. Les benchmarks montrent que les UUID v7 ameliorent le debit d'insertion de 20 a 40% par rapport a v4. La probabilite de collision de UUID v4 est regie par le paradoxe des anniversaires. Avec 122 bits aleatoires, l'espace contient 5,3 x 10^36 valeurs possibles. La probabilite de générer un doublon n'atteint 50% qu'après avoir produit environ 2,71 x 10^18 UUID. Les formats concurrents incluent les Snowflake ID de Twitter (64 bits), les ULID (128 bits avec encodage Crockford Base32), les NanoID (chaines compactes URL-safe) et les sequences auto-incrementees de bases de données. Chacun implique des compromis entre garanties d'unicite, triabilite, taille de stockage et exigences de coordination.

Comment Utiliser

  1. Sélectionnez un format (UUID v4/v7/v1, ULID ou NanoID) et le nombre à générer.
  2. Optionnellement, choisissez le formatage : majuscules, avec/sans accolades ou tirets.
  3. Cliquez sur 'Générer UUID' et copiez les résultats individuellement ou tous à la fois.

Méthodologie

La génération d'UUID v4 repose sur la méthode crypto.randomUUID() du navigateur de l'API Web Crypto, qui produit 128 bits dont 122 sont cryptographiquement aléatoires et 6 sont réservés aux marqueurs de version (4 bits à 0100) et de variante (2 bits à 10). Cela garantit que chaque UUID est auto-descriptif — vous pouvez identifiér sa version en inspectant le 13e caractère hexadécimal. L'UUID v7 intègre un horodatage Unix de 48 bits en millisecondes dans les bits les plus significatifs, suivi de bits aléatoires de remplissage. Cette conception produit des identifiants à la fois uniques et naturellement ordonnés dans le temps, les rendant idéaux pour les clés primaires de bases de données où la performance de l'index B-tree compte. L'UUID v1 utilise un horodatage de 60 bits à une résolution de 100 nanosecondes depuis le 15 octobre 1582 (la date de la réforme du calendrier grégorien), une séquence d'horloge de 14 bits pour prévenir les doublons lors des ajustements d'horloge, et un identifiant de noeud de 48 bits généré aléatoirement pour la protection de la vie privée. Les ULID encodent un horodatage de 48 bits en millisecondes suivi de 80 bits aléatoires, rendus en Crockford Base32 pour une représentation compacte et insensible à la casse. Les NanoID utilisent un alphabet et une longueur configurables, par défaut 21 caractères d'un ensemble sur pour les URL, fournissant 126 bits d'entropie.

Comprendre vos Résultats

Chaque UUID est une valeur de 128 bits affichée sous forme de 32 caractères hexadécimaux en 5 groupes séparés par des tirets, suivant le motif 8-4-4-4-12. Le format canonique est xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx, où la position M (13e caractère hex) indique la version et la position N (17e caractère hex) indique la variante. Pour UUID v4, M est toujours '4' et N est l'un de '8', '9', 'a' ou 'b', confirmant la conformité RFC 4122. Pour UUID v7, M est '7' et les 12 premiers caractères hex encodent l'horodatage en millisecondes, rendant l'heure de création directement lisible. UUID v1 place M à '1' avec l'horodatage réparti sur les trois premiers groupes dans un ordre réarrangé. Les ULID sont affichés comme 26 caractères Crockford Base32 en majuscules — les 10 premiers encodent l'horodatage et les 16 restants l'aléatoire. Les NanoID apparaissent comme des chaînes compactes utilisant des caractères surs pour les URL (A-Z, a-z, 0-9, tiret, underscore), sans marqueurs structurels inhérents. Lors du choix d'un format, considérez que les UUID avec accolades sont courants dans les écosystèmes Microsoft, tandis que les UUID sans tirets économisent du stockage dans les bases de données.

Sources: RFC Editor

Exemples Pratiques

Clés primaires de base de données : Utilisez UUID v7 pour les tables PostgreSQL ou MySQL où l'ordre d'insertion compte. L'horodatage intégré garantit des valeurs de clé séquentielles, évitant la dispersion aléatoire d'E/S que UUID v4 cause sur les index clusterisés. Suivi d'événements microservices : Générez UUID v4 pour les ID de corrélation transmis via les files de messages (Kafka, RabbitMQ). Le caractère purement aléatoire garantit zéro collision même lorsque des milliers de services produisent des ID simultanément. Jetons de session frontend : Utilisez NanoID pour des identifiants de session compacts et surs pour les URL dans les applications monopage. À 21 caractères, ils sont plus courts que les UUID tout en maintenant une résistance aux collisions équivalente. Nommage de fichiers et déduplication : Générez des ULID pour les identifiants de fichiers téléchargés. Leur triabilité lexicographique signifie qu'un simple listing alphabétique affiché les fichiers dans l'ordre chronologique de téléchargement.

Conseils et Bonnes Pratiques

Choisissez votre version d'UUID en fonction de votre cas d'utilisation plutôt que d'opter par défaut pour v4. Si vos identifiants serviront de clés primaires de base de données, UUID v7 ou ULID offrent des performances d'insertion nettement meilleures car leur nature ordonnée dans le temps maintient les index B-tree séquentiels, réduisant les divisions de pages et la fragmentation. Pour les systèmes distribués où plusieurs noeuds génèrent des ID indépendamment, le caractère purement aléatoire d'UUID v4 élimine tout risque de collisions basées sur les horodatages. Lorsque vous travaillez avec des URL ou des identifiants visibles par l'utilisateur, le format compact de 21 caractères de NanoID est plus pratique qu'un UUID de 36 caractères. Stockez toujours les UUID sous leur type binaire natif de 128 bits dans les bases de données quand c'est possible (par ex. le type uuid de PostgreSQL ou BINARY(16) de MySQL) plutôt que comme des chaînes VARCHAR(36). Cela réduit le stockage de plus de moitié et améliore les performances de comparaison. Lors du débogage, rappelez-vous que le chiffre de version (position 13) vous indique instantanément qu'elle variante d'UUID vous examinez.

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

Intégrer cet outil

Obtenir le code

Cet outil vous a-t-il été utile ?
Souhaitez-vous nous en dire plus ?
0/500
Souhaitez-vous un suivi ?
Merci pour votre retour !

Questions fréquentes

Quelle est la différence entre UUID v4, v7, v1, ULID et NanoID?
UUID v4 est entièrement aléatoire (le plus courant). UUID v7 est ordonné par temps avec horodatage milliseconde—idéal pour les bases de données. UUID v1 utilise horodatage + adresse MAC. ULID est un ID triable de 26 caractères en Crockford Base32. NanoID est un ID compact de 21 caractères sur pour les URL.
Les UUID générés sont-ils vraiment uniques?
Oui! UUID v4 a 122 bits aléatoires, donnant environ 5,3×10³⁶ combinaisons possibles. La probabilité de générer deux UUID identiques est astronomiquement faible—il faudrait générer 1 milliard d'UUID par seconde pendant environ 100 ans.
Quelle est la différence entre UUID et GUID?
UUID (Universally Unique Identifier) et GUID (Globally Unique Identifier) sont essentiellement la même chose. GUID est le terme de Microsoft pour UUID. Les deux suivent la même norme RFC 4122.
Quand devrais-je utiliser UUID v7 au lieu de v4 ?
Utilisez UUID v7 lorsque vous avez besoin d'identifiants ordonnés par temps, en particulier comme clés primaires de base de données. UUID v7 (défini dans RFC 9562) intègre un horodatage Unix dans les 48 premiers bits, rendant les IDs naturellement triables par heure de création. Cela améliore considérablement les performances d'insertion sur les index B-tree car les nouvelles lignes sont toujours ajoutées à la fin, évitant les divisions aléatoires de pages. UUID v4 est purement aléatoire et provoque une fragmentation des index dans les bases de données. Utilisez v4 quand l'ordre n'a pas d'importance (jetons API, IDs de session, IDs de corrélation) et v7 quand vous avez besoin d'IDs triables par temps (clés primaires, IDs d'événements, journaux distribués).
Une collision UUID peut-elle réellement se produire en pratique ?
Pour UUID v4, la probabilité est astronomiquement faible. Un UUID v4 possède 122 bits aléatoires, produisant 5,3 × 10³⁶ valeurs possibles. Pour avoir 50% de chance d'une seule collision, il faudrait générer environ 2,71 × 10¹⁸ UUID — soit 2,71 quintillions. À 1 milliard d'UUID par seconde, cela prendrait environ 86 ans. En pratique, le risque de collision provient bien plus probablement d'un générateur de nombres aléatoires défectueux (source d'entropie insuffisante) que de la probabilité mathématique. L'API Web Crypto (crypto.getRandomValues), utilisée par cet outil, fournit une aléatoire cryptographiquement sécurisée adaptée à la génération d'UUID.
Qu'est-ce que ULID et quand devrais-je l'utiliser au lieu d'UUID ?
ULID (Universally Unique Lexicographically Sortable Identifier) est un identifiant de 128 bits qui combine un horodatage Unix de 48 bits en millisecondes avec 80 bits d'aléatoire, encodé en une chaîne Crockford Base32 de 26 caractères. Les ULID sont triables par temps (comme UUID v7), insensibles à la casse et légèrement plus courts que le format hexadécimal de 36 caractères d'UUID. Utilisez ULID quand vous voulez des IDs lisibles, triables et faciles à copier-coller. Utilisez UUID quand vous avez besoin d'une compatibilité maximale avec les systèmes existants, bases de données et bibliothèques qui attendent le format UUID standard 8-4-4-4-12. UUID v7 offre des avantages similaires de tri temporel tout en restant compatible avec l'écosystème UUID.