🆔 UUID Tools

Tools for generating, decoding and analyzing UUIDs

Qu'est-ce qu'un UUID ?

UUID (Identifiant Universel Unique) est un format d'identifiant standardisé conçu pour être unique au niveau mondial dans l'espace et le temps. Les UUIDs sont des valeurs de 128 bits généralement représentées par 32 chiffres hexadécimaux, affichés en cinq groupes séparés par des tirets : 123e4567-e89b-12d3-a456-426614174000.

Les UUIDs sont définis par la norme RFC 9562 (qui remplace l'ancienne RFC 4122) et sont utilisés dans les plateformes informatiques pour identifier des informations sans nécessiter d'enregistrement ou de coordination centralisée.

Format d'un UUID

Tous les UUIDs partagent un format commun composé de 36 caractères (32 chiffres hexadécimaux plus 4 tirets) organisés selon le modèle :

xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx

Où :

  • x est un chiffre hexadécimal quelconque (0-9, a-f)
  • M indique la version de l'UUID (1-7)
  • N indique la variante de l'UUID (typiquement 8, 9, A ou B pour les UUIDs modernes)

Comparaison des versions d'UUID

VersionNomMéthode de GénérationTrié par TempsCas d'Utilisation
UUID v1HorodatageHorodatage actuel + ID de nœud (MAC)Oui (partiellement)Enregistrements, systèmes distribués
UUID v3Basé sur le Nom (MD5)Hash MD5 de l'espace de noms + nomNonIDs cohérents pour la même entrée
UUID v4AléatoireNombres aléatoires ou pseudo-aléatoiresNonUsage général, le plus courant
UUID v5Basé sur le Nom (SHA-1)Hash SHA-1 de l'espace de noms + nomNonIDs cohérents avec un hash plus fort
UUID v6Horodatage RéordonnéHorodatage (ordonné pour le tri)OuiClés de base de données, enregistrements triés par temps
UUID v7Horodatage UnixHorodatage Unix + données aléatoiresOuiIdentifiants modernes triables
Nil UUIDUUID NulTout à zéroN/AValeur spéciale, marqueur non initialisé

Avantages des UUIDs

  • Pas de Coordination Requise : Générer des IDs sans coordination centrale
  • Unicité Globale : Probabilité extrêmement faible de collision
  • Longueur Fixe : Représentation cohérente de 36 caractères
  • Multi-plateforme : Compatible avec pratiquement tous les langages de programmation
  • Polyvalent : Différentes versions pour différents cas d'utilisation

Alternatives non standard aux UUIDs

Type d'IDDescriptionAvantagesInconvénients
GUIDImplémentation UUID de MicrosoftÉquivalent fonctionnel à UUIDQuelques différences d'implémentation sur les anciens systèmes
ULIDIdentifiant Universel Unique Ordonnable LexicographiquementOrdonnable lexicographiquement, horodatage en premier, insensible à la cassePlus récent, adoption moins généralisée
Snowflake IDSystème d'ID distribué de TwitterTriable par temps, compact (64 bits)Nécessite une coordination centrale
CUID/CUID2IDs résistants aux collisionsCourts, adaptés à la génération côté clientPas une norme officielle
Nano IDGénérateur de chaînes uniques petites, sécurisées et adaptées aux URLPlus petit qu'un UUID, alphabet configurableNon standardisé
Short UUIDCodage plus court des UUIDs standardsReprésentation plus compacteNécessite une conversion vers/depuis UUID standard
Nil UUIDUUID avec tous les bits à zéroSignification sémantique spécialeNon unique (utilisé comme valeur spéciale)
Minecraft UUIDUUIDs avec ou sans tiretsCompatible avec les UUIDs standardsDifférences de format uniquement

Applications Pratiques

  • Clés Primaires de Base de Données : Surtout dans les bases de données distribuées ou répliquées
  • Systèmes Distribués : Identifier des entités dans plusieurs systèmes
  • Applications Web : Identifiants de session, suivi des utilisateurs anonymes
  • Gestion de Contenus : Identifiants de documents et de médias
  • APIs : Identifiants de requêtes et de transactions pour le suivi et le débogage
  • Internet des Objets : Identification des appareils sans enregistrement central
  • Synchronisation de Données : Identifier des enregistrements dans plusieurs magasins de données
  • Licences de Logiciels : Clés uniques de produit ou de licence