Comprendre les UUID et savoir les générer
Ce que fait ce générateur
Un UUID (identifiant unique universel) est une valeur de 128 bits écrite sous forme de 32 chiffres hexadécimaux selon le motif bien connu 8-4-4-4-12, comme 550e8400-e29b-41d4-a716-446655440000. Ce générateur produit à la demande des identifiants conformes à la norme RFC 4122 : choisissez la version 4 ou la version 1 et créez jusqu'à 100 valeurs en une seule fournée.
Vous pouvez activer ou retirer les traits d'union et opter pour des minuscules ou des majuscules, afin que le résultat corresponde à ce qu'attendent déjà votre colonne de base de données, votre contrat d'API ou votre code.
Quand utiliser un UUID
Les UUID sont utiles dès qu'un identifiant doit être créé de façon autonome, sans autorité centrale qui distribue des numéros séquentiels. On les retrouve comme clés primaires dans les bases de données distribuées, comme identifiants de corrélation pour suivre une requête entre services, comme clés d'idempotence sur les appels d'API, pour des noms de fichiers qui ne doivent jamais entrer en conflit, ou pour des références d'objets et de sessions créées côté client.
Comme deux machines peuvent produire des identifiants au même instant sans se concerter, les UUID conviennent particulièrement bien aux microservices, aux applications offline-first et aux pipelines d'événements.
Version 4 face à la version 1
La version 4 remplit la quasi-totalité de ses bits avec des valeurs aléatoires cryptographiquement robustes issues de crypto.randomUUID du navigateur et de la Web Crypto API. Les identifiants sont donc imprévisibles et ne révèlent ni le moment ni le lieu de leur création. C'est le choix recommandé dans la plupart des cas.
La version 1 construit au contraire la valeur à partir de l'horodatage courant, d'un identifiant de nœud et d'une séquence d'horloge, ce qui permet de trier approximativement une fournée par date de création mais dévoile cet instant. Optez pour la v4 lorsque l'imprévisibilité compte, et pour la v1 lorsqu'un ordre chronologique approximatif est plus utile.
Format et probabilité de collision
Les deux versions conservent la disposition standard 8-4-4-4-12, et le chiffre de version occupe le début du troisième groupe : un 4 ou un 1. La solidité de la v4 tient à ses 122 bits aléatoires : l'ensemble compte plus de 5×10^36 valeurs possibles, si bien que même après avoir généré des milliards d'identifiants, la probabilité que deux d'entre eux coïncident reste pratiquement nulle.
Retirer les traits d'union donne une chaîne compacte de 32 caractères, pratique dans les URL ou les clés, tandis que la sortie en majuscules s'aligne sur les systèmes qui stockent les identifiants ainsi.