Blog ClockTools

Outils de développement

GUID vs UUID : quelle est la différence ?

GUID et UUID désignent généralement le même identifiant de 128 bits, mais la version, le format, le tri et les contrats entre systèmes restent importants.

Par , développeur et éditeur | | Révisé conformément à la politique éditoriale de ClockTools

Illustration ClockTools comparant GUID et UUID
Table des matières

GUID et UUID décrivent généralement le même type d'identifiant : une valeur 128 bits conçue pour être unique sans demander à un compteur central le numéro suivant. Les mots proviennent de différentes traditions de dénomination. UUID est le terme standard, tandis que GUID est particulièrement courant dans les logiciels et outils de développement Microsoft.

Cette réponse courte est utile, mais ne règle pas toutes les questions pratiques. Deux identifiants peuvent avoir la structure textuelle 8-4-4-4-12 tout en différant par leur version UUID, leurs règles de génération, leur tri ou leurs conventions de sérialisation binaire. Lorsqu'une colonne, une API ou une application parle de GUID, vérifiez le format et la version acceptés plutôt que de vous fier au nom seul.

Utilisez le générateur de GUID ClockTools lorsque vous avez besoin de valeurs UUID v4 ou UUID v7 générées par le navigateur, d'une sortie groupée, d'une validation ou d'un formatage prêt à l'exportation. Les étapes de génération et de validation s'exécutent localement dans le navigateur.

GUID vs UUID : sont-ils identiques ?

Dans la plupart des travaux de développement courants, GUID et UUID sont des noms interchangeables pour un identifiant de 128 bits. La norme actuelle de l'IETF, la RFC 9562, précise que les UUID ont aussi été appelés identifiants globalement uniques. Une valeur comme 550e8400-e29b-41d4-a716-446655440000 peut donc être appelée UUID ou GUID sans modifier ses caractères.

La distinction importante est entre un nom et un méthode de génération. Appeler une valeur GUID ne dit pas si elle utilise la version 4, la version 7, une ancienne version fondée sur le temps ou une construction propre à une plateforme. L'appeler UUID ne garantit pas qu'une application accepte toutes les versions normalisées. Le nom indique le type général ; la version et le contrat qui l'entoure déterminent le comportement.

QuestionGUIDUUID
Contexte typiqueAPI Microsoft, .NET, Windows, SQL ServerNormes Internet, bases de données, systèmes distribués, API
Taille habituelle128 bits128 bits
Forme de texte familière8-4-4-4-12 groupes hexadécimaux8-4-4-4-12 groupes hexadécimaux
Le nom précise-t-il une version ?NonNon
Les termes peuvent-ils faire référence à la même valeur ?OuiOui

La comparaison GUID/UUID doit donc porter moins sur le mot « correct » que sur les exigences du système qui l'utilise.

Pourquoi y a-t-il deux noms ?

UUID signifie identifiant universellement unique. C'est le terme des normes de l'IETF définissant la structure, les variantes, les versions, la représentation textuelle et la génération. GUID signifie identifiant globalement unique et s'est profondément implanté sur les plateformes Microsoft. Le type .NET System.Guid est un exemple familier.

Les deux noms perdurent, car les écosystèmes logiciels conservent leur vocabulaire pour la compatibilité. Une API Microsoft peut exposer un Guid, un schéma PostgreSQL utiliser une colonne uuid, et une API JSON nommer le champ id. Les trois peuvent contenir la même valeur textuelle canonique.

Il n'est pas nécessaire de renommer chaque champ GUID en UUID simplement pour des raisons de terminologie. Il est nécessaire de documenter la version acceptée, de savoir si la casse est importante, si les accolades sont acceptées et comment la valeur est sérialisée lorsqu'elle traverse les limites du système.

À quoi ressemble un UUID ?

La représentation lisible habituelle comporte 32 chiffres hexadécimaux répartis en cinq groupes :

xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx

Les groupes ont respectivement 8, 4, 4, 4 et 12 caractères. Avec quatre traits d'union, la chaîne canonique mesure 36 caractères. M indique le quartet de version dans les structures définies par la norme, tandis que les bits représentés par N identifient la variante. Par exemple, le 4 dans 550e8400-e29b-41d4-a716-446655440000 identifie UUID version 4.

Schéma ClockTools de la représentation textuelle d'un UUID de 128 bits, avec champs de version et de variante
Schéma ClockTools de la représentation textuelle d'un UUID de 128 bits, avec champs de version et de variante

La casse hexadécimale ne change pas la valeur numérique. A716 et a716 représentent les mêmes bits. Les traits d'union, les accolades, un préfixe urn:uuid: ou une forme compacte peuvent modifier la chaîne acceptée par l'analyseur sans nécessairement changer l'identifiant sous-jacent. ClockTools sépare donc génération et mise en forme.

En quoi UUID v4 et UUID v7 diffèrent-ils ?

UUID v4 est la version aléatoire largement utilisée. La plupart de ses bits disponibles sont remplis à partir d'une source aléatoire ou pseudo-aléatoire, les bits requis étant définis pour la version et la variante. Cela fonctionne bien lorsque les identifiants ne doivent pas révéler l'ordre de création et lorsque la génération s'effectue indépendamment entre de nombreux clients ou services.

UUID v7 suit l'ordre temporel. Ses 48 premiers bits contiennent un horodatage Unix en millisecondes, suivi de la version, de la variante et de données aléatoires. Les valeurs plus récentes se trient généralement après les plus anciennes. Cela peut mieux convenir aux index ordonnés et aux journaux : les nouveaux enregistrements ont moins de chances d'être dispersés dans l'espace des clés.

L'ordre temporel n'est pas une séquence parfaite. Plusieurs UUID v7 créés dans la même milliseconde ont besoin de données supplémentaires pour rester distincts, et le comportement de l'horloge compte. Ce n'est pas non plus un secret : v7 révèle approximativement la date de création par conception. La RFC 9562 définit les structures normatives et les recommandations de génération des deux versions.

Quelle version choisir ?

Choisissez la version qui correspond au système de réception et au comportement dont vous avez besoin.

ExigencePréférence habituellePourquoi
Large compatibilité avec les systèmes existants prenant en charge UUIDUUID v4Il est mature, familier et communément accepté
Aucune date de création intégrée à l'identifiantUUID v4La valeur est aléatoire, plutôt qu'ordonnée dans le temps
Clés suivant approximativement la date de créationUUID v7Le préfixe d'horodatage prend en charge le tri chronologique
L'API existante nécessite explicitement une versionVersion requiseLa compatibilité prime sur les préférences
Code court destiné à être luNi l'un ni l'autre par défautLes UUID sont des identifiants, pas des codes de confirmation conviviaux
Jeton d'authentification ou secret de réinitialisation du mot de passeUn mécanisme dédié de jetons sécurisésL'unicité et le secret sont des propriétés différentes

Ne changez pas de version uniquement parce que l’une d’elles semble plus récente. Vérifiez d'abord votre pilote de base de données, votre bibliothèque de validation, votre schéma API et vos consommateurs en aval. Un validateur écrit il y a des années peut rejeter une valeur v7 valide car il ne reconnaît que les anciennes versions.

Le même UUID peut-il être différent ?

Oui. Les mêmes 128 bits peuvent être représentés en minuscules standard, en majuscules, avec accolades ou guillemets, en hexadécimal compact ou sous forme d'URN. ClockTools peut aussi exporter les valeurs en lignes, CSV, JSON ou dans un format adapté à SQL. Ce sont des représentations différentes, pas de nouveaux identifiants.

L'échange binaire mérite plus d'attention. Certaines API de plate-forme exposent historiquement les champs GUID ou les tableaux d'octets dans un ordre qui diffère de l'ordre des octets du réseau décrit par les spécifications modernes UUID. Un aller-retour de chaîne peut sembler correct, alors qu'un aller-retour brut de 16 octets ne l'est pas. Lorsque les systèmes échangent des UUID binaires, documentez l'ordre des octets et testez par rapport à une valeur connue au lieu de supposer que chaque bibliothèque est sérialisée de manière identique.

Pour les chaînes de requête ou les segments de chemin d'URL, privilégiez la forme canonique. Si une valeur environnante doit être échappée, l' encodeur d'URL ClockTools peut encoder le paramètre complet sans modifier l'identifiant lui-même.

Comment devez-vous stocker les GUID et UUID ?

Préférez le type UUID natif ou identifiant unique d'une base de données lorsqu'il est disponible et pris en charge par vos outils. Un type natif valide la forme et stocke normalement la valeur 128 bits de manière plus compacte qu'une colonne de texte 36 caractères. Cela peut également rendre l'intention plus claire pour les lecteurs de schéma.

Le stockage de texte reste raisonnable lorsqu'un système ne dispose pas d'un type natif ou lorsque la compatibilité nécessite une chaîne. Dans ce cas, normalisez une représentation, définissez la longueur autorisée et évitez de mélanger des accolades, des URN, des majuscules et des valeurs compactes dans la même colonne. Un formatage cohérent simplifie les contrôles d’égalité, les exportations et le travail de support.

Le comportement de l'index dépend de la base, de la charge, des insertions et de sa conception. UUID v7 peut améliorer la proximité des clés pour certaines charges riches en ajouts, mais ne garantit pas universellement de meilleures performances. Mesurez avec votre base et des données réalistes. Conservez le sens métier dans des colonnes distinctes : un identifiant ne remplace ni une date de création, ni un numéro client, ni une règle de contrôle d'accès.

Comment ClockTools peut-il les générer et les valider ?

Le générateur GUID et UUID en ligne offre un flux de travail ciblé :

  1. Sélectionnez UUID v4 pour les identifiants aléatoires ou UUID v7 pour les identifiants chronologiques.
  2. Choisissez une quantité comprise entre 1 et 1,000.
  3. Sélectionnez le formatage standard, majuscules, accolades, entre guillemets, compact ou URN.
  4. Choisissez le texte brut ou l'encodage Base64, Base64URL ou URL selon les besoins de la destination.
  5. Exportez sous forme de lignes, CSV, JSON ou SQL, ou copiez directement les résultats.
  6. Collez une valeur existante dans le validateur pour inspecter sa forme normalisée, sa version, sa variante et ses valeurs spéciales reconnues.

La génération utilise la source aléatoire cryptographique du navigateur. UUID v4 fixe les bits de version et de variante requis. UUID v7 associe l'horodatage Unix actuel en millisecondes, des données aléatoires et les bits de structure requis. Ces opérations ne nécessitent pas l'envoi des identifiants générés.

Pour comparer deux listes exportées, utilisez le Vérificateur de différences de texte pour repérer une entrée manquante, répétée ou reformatée sans analyser chaque ligne manuellement.

Quelles erreurs faut-il éviter ?

La première erreur est de confondre « unique » et « collision impossible ». Correctement générés, les UUID rendent les collisions accidentelles extrêmement improbables, mais le logiciel doit conserver une contrainte d'unicité si les doublons sont dommageables. Une source aléatoire défaillante, des données de test copiées, une erreur d'importation ou un bug applicatif peut créer un doublon même si les mathématiques sont correctes.

La deuxième erreur consiste à utiliser un UUID comme preuve d'autorisation. Un identifiant difficile à deviner peut réduire les découvertes occasionnelles, mais il n’accorde pas à lui seul une autorisation en toute sécurité. Vérifiez l'accès de l'utilisateur authentifié sur chaque demande protégée.

La troisième erreur consiste à changer silencieusement la représentation. La suppression des traits d'union, le décodage de Base64 ou la conversion en octets doivent être réversibles et testés. Conservez une valeur canonique dans les journaux afin que les opérateurs puissent la retracer entre les services. Si un analyseur rejette un identifiant, validez la version et le format avant de générer un remplacement ; le remplacement d'un identifiant peut briser les références qui y pointent déjà.

Foire aux questions

GUID et UUID sont-ils la même chose ?

Habituellement, oui. Les deux termes font généralement référence à un identifiant 128 bits avec la même forme de texte standard. UUID est le terme standard de l'IETF, tandis que GUID est particulièrement courant dans les écosystèmes Microsoft.

Un GUID est-il toujours un UUID version 4 ?

Non. Le mot GUID n'identifie pas une seule version de UUID. Une valeur de forme GUID peut utiliser la version 4, la version 7, une autre version standardisée ou une méthode de génération spécifique à la plateforme.

Dois-je utiliser UUID v4 ou UUID v7 ?

Utilisez v4 pour un identifiant aléatoire largement compatible sans date de création intégrée. Envisagez v7 si le tri chronologique et la proximité des clés dans l'index comptent, à condition que tous les systèmes récepteurs le prennent en charge.

Combien de caractères y a-t-il dans un GUID ou UUID standard ?

La forme du texte canonique comporte 32 chiffres hexadécimaux et quatre tirets, pour un total de 36 caractères. Les accolades, les préfixes URN, le formatage compact ou les guillemets peuvent modifier la longueur affichée.

Puis-je utiliser un UUID comme jeton secret ?

Ne supposez pas que l'unicité garantit le secret. Les jetons d'authentification et de réinitialisation doivent être conçus comme des données d'authentification sûres et imprévisibles, avec des contrôles d'expiration et d'autorisation.

ClockTools envoie-t-il les UUID générés à un serveur ?

Le générateur GUID effectue la génération, le formatage et la validation localement dans le navigateur. Il utilise la source aléatoire cryptographique du navigateur pour les parties aléatoires des UUID pris en charge.

À propos de l'auteur

Vigneshwaran Vijayakumar

Fondateur, développeur et éditeur de ClockTools | Responsable du marketing numérique | Inde

Vigneshwaran est un ingénieur qui possède plusieurs décennies d'expérience technique et a notamment exercé comme responsable du marketing numérique à Dubaï. Son travail associe analyse de données, référencement naturel, optimisation du taux de conversion, systèmes de contenu, production visuelle, intelligence artificielle appliquée et apprentissage automatique. Chez ClockTools, il met cette expérience multidisciplinaire au service d'outils en ligne ciblés et de guides pratiques attentifs à la qualité des sources.

Profil LinkedIn