Générateur d'UUID (v4)

Générez un ou plusieurs UUID aléatoires en version 4 dans votre navigateur grâce à une source aléatoire cryptographique — rien n'est envoyé à un serveur.

1 055 vues

Ce qui rend un UUID v4 unique

Un UUID (identifiant unique universel) est un nombre de 128 bits, écrit conventionnellement en 36 caractères répartis en 8-4-4-4-12 en hexadécimal, comme f47ac10b-58cc-4372-a567-0e02b2c3d479. Parmi ces 128 bits, la version 4 — la variante que génère cet outil — en remplit 122 avec la sortie d'un générateur de nombres aléatoires cryptographiquement sûr. Les 6 bits restants ne sont pas du tout aléatoires : ce sont des marqueurs fixes qui identifient l'UUID comme étant de version 4 et indiquent son « variant », ce qui explique pourquoi le caractère juste après le deuxième tiret est toujours 4, et le premier caractère du groupe suivant est toujours 8, 9, a ou b.

122 bits aléatoires représentent un espace énorme : 2^122 valeurs possibles, soit environ 5,3×10³⁶. Pour rendre cela concret, si chaque appareil sur Terre générait un milliard d'UUID par seconde en continu, il faudrait tout de même de l'ordre de dizaines de milliards d'années de génération combinée avant que les probabilités d'un seul doublon accidentel n'atteignent seulement 50 %. C'est pourquoi les systèmes distribués — des services fonctionnant sur des centaines de serveurs indépendants sans aucune coordination entre eux — peuvent chacun générer leurs propres UUID localement et faire confiance, sans consulter un registre central, au fait qu'aucun ne se recoupera jamais. C'est tout l'intérêt du format : une identification unique sans consultation de base de données.

La génération se déroule ici entièrement à l'intérieur de votre navigateur grâce à la fonction crypto.randomUUID() de la Web Crypto API — la même source aléatoire cryptographique que les navigateurs utilisent pour les opérations sensibles en matière de sécurité. Rien n'est envoyé à un serveur, aucune graine n'est enregistrée, et chaque UUID que vous générez est indépendant de tous les autres.

Ce qu'il faut savoir avant d'utiliser des UUID

v4 n'est pas la seule version. v1 et v6 intègrent un horodatage et l'adresse réseau de la machine génératrice, ce qui les rend triables mais divulgue aussi des informations sur le moment et le lieu de leur création. v5 hache un nom que vous fournissez, produisant le même UUID à chaque fois pour la même entrée — utile lorsque vous avez besoin d'un identifiant déterministe plutôt qu'aléatoire. v7, un standard plus récent, combine un préfixe d'horodatage avec des bits aléatoires, vous donnant à la fois l'unicité et un ordre chronologique naturel. v4 reste le choix par défaut approprié chaque fois que vous avez simplement besoin d'un identifiant aléatoire, non devinable et sans collision, sans avoir besoin d'encoder une heure ou un nom.

Une mise en garde pratique : comme les valeurs v4 sont entièrement aléatoires, les utiliser comme clé primaire de base de données peut nuire aux performances d'insertion sur des tables indexées en B-tree, car les nouvelles lignes atterrissent à des positions imprévisibles dans l'index plutôt que de s'ajouter proprement à une extrémité. Si le débit d'insertion compte à grande échelle, une alternative ordonnée dans le temps comme UUIDv7 ou ULID conserve la même garantie d'unicité sur 128 bits tout en restant favorable aux index.

Questions fréquentes

Deux UUID générés peuvent-ils entrer en collision ?

Théoriquement oui, en pratique jamais : avec 2^122 possibilités, générer un milliard d'UUID par seconde pendant 85 ans donne environ 50 % de chances d'une seule collision. Des systèmes du monde entier s'appuient là-dessus.

Devrais-je utiliser des UUID comme clés primaires de base de données ?

Ils excellent pour la génération distribuée et les identifiants non devinables, mais les v4 aléatoires fragmentent les index B-tree. Si la performance d'insertion compte, regardez UUIDv7 (ordonné dans le temps) ou ULID — même taille, favorable aux index.

v4 est-elle la seule version ?

Non — v1/v6 intègrent un horodatage et une adresse MAC, v5 hache un nom fourni et produit toujours le même résultat, v7 est un format plus récent combinant un horodatage avec de l'aléatoire. v4 reste le choix par défaut quand vous avez simplement besoin d'un identifiant unique aléatoire.

À quoi servent les bits fixes dans un UUID v4 ?

Sur les 128 bits, seuls 122 sont aléatoires. Les 6 autres sont réservés pour marquer le format lui-même — un demi-octet est fixé pour signaler la « version 4 », un autre est limité à un petit ensemble de valeurs (8, 9, a ou b) pour marquer le « variant ». C'est pourquoi chaque UUID v4 comporte un 4 juste après le deuxième tiret, quel que soit le nombre que vous en générez.

Puis-je utiliser un UUID comme jeton de sécurité, par exemple pour un lien de réinitialisation de mot de passe ?

Un UUID v4 est généré à partir d'une source aléatoire cryptographiquement sûre, donc le deviner n'est pas réalisable en pratique — mais il a été conçu pour l'unicité, pas pour le secret. Pour tout ce qui touche à la sécurité, associez-le à une expiration appropriée, une application à usage unique et une validation côté serveur plutôt que de vous fier uniquement à l'UUID.

Commentaires

Pas encore de commentaires — soyez le premier à en écrire un !

Outils similaires