Dev Tools

Générateur UUID

Générez des identifiants UUID v4 conformes RFC 4122. Génération en lot, copie en un clic.

Questions fréquentes

Qu'est-ce qu'un UUID ?

Un UUID (Universally Unique Identifier) est un identifiant de 128 bits standardisé par la RFC 4122. Il est conçu pour être unique dans l'espace et le temps sans nécessiter d'autorité centrale.

La version la plus courante, UUID v4, utilise 122 bits aléatoires, rendant les collisions virtuellement impossibles (probabilité de 1 sur 2^122).

Quel est le format d'un UUID v4 ?

Un UUID v4 suit le format xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx, où x est un chiffre hexadécimal (0-f), le « 4 » indique la version 4, et y est 8, 9, a ou b (bits de variante).

Exemple : 550e8400-e29b-41d4-a716-446655440000. La longueur totale est de 36 caractères tirets inclus.

Les UUID v4 sont-ils vraiment uniques ?

Un UUID v4 utilise 122 bits aléatoires, soit 5,3 × 10³⁶ valeurs possibles. Pour avoir 50 % de chance de collision, il faudrait générer environ 2,7 × 10¹⁸ UUIDs : soit 2,7 trillions.

En pratique, une collision UUID v4 est considérée comme impossible pour tout usage réel.

Quand utiliser un UUID ?

Les UUIDs sont idéaux pour les clés primaires en base de données (surtout en systèmes distribués), les identifiants de ressources API, les tokens de session, les noms de fichiers, les IDs de corrélation en microservices, et toute situation nécessitant un identifiant unique sans serveur central.

UUID v4 ou UUID v7 : lequel choisir ?

UUID v4 est entièrement aléatoire et le plus répandu. UUID v7 (RFC 9562, 2024) intègre un timestamp Unix dans les 48 premiers bits, le rendant triable par date de création : idéal pour les clés primaires où l'ordre d'insertion compte.

Utilisez v4 pour l'unicité générale, v7 quand l'ordre chronologique est nécessaire.

UUID generator : tout comprendre sur les identifiants universels uniques

Qu'est-ce qu'un UUID et pourquoi l'utiliser ?

Un UUID (Universally Unique Identifier) est un identifiant de 128 bits standardisé par l'IETF. Son objectif est de fournir un identifiant unique sans nécessiter de coordination centrale entre les systèmes qui le génèrent. Contrairement aux identifiants auto-incrémentés classiques (1, 2, 3...), un UUID peut être créé indépendamment sur n'importe quel serveur, appareil ou navigateur, avec une probabilité de collision quasi nulle.

Les UUIDs sont omniprésents dans le développement logiciel moderne : clés primaires en base de données, identifiants de ressources dans les APIs REST, tokens de session, noms de fichiers temporaires, ou encore identifiants de corrélation dans les architectures microservices. Leur adoption massive s'explique par leur capacité à fonctionner dans des systèmes distribués sans point de synchronisation unique.

Un UUID v4 utilise 122 bits d'entropie aléatoire, soit 5,3 × 10³&sup6; combinaisons possibles. Pour avoir 50 % de chance de collision, il faudrait générer environ 2,7 trillions d'UUIDs.

Les différentes versions d'UUID : v1, v4 et v7

La RFC 4122 (2005) définit cinq versions d'UUID, et la RFC 9562 (2024) en ajoute trois nouvelles. En pratique, trois versions dominent les usages courants.

Comparaison des versions UUID courantes

UUID v1 60 bits temps + 48 bits MAC
Timestamp + adresse MAC
UUID v4 122 bits aléatoires
Entièrement aléatoire
UUID v7 48 bits temps + 74 bits aléatoires
Timestamp Unix + aléatoire

Source : RFC 4122 (IETF, 2005) et RFC 9562 (IETF, 2024)

UUID v1 combine un timestamp de 60 bits avec l'adresse MAC de la machine. Il garantit l'unicité mais expose des informations sur le matériel et l'heure de création. UUID v4 est entièrement aléatoire (122 bits d'entropie via un générateur cryptographique) et reste le plus utilisé aujourd'hui. UUID v7, introduit par la RFC 9562, intègre un timestamp Unix dans les 48 premiers bits : l'UUID est donc triable chronologiquement, ce qui le rend idéal comme clé primaire dans les bases de données relationnelles où l'ordre d'insertion importe pour les performances d'indexation.

UUID v4

122 bits

Aléatoire pur, non triable

UUID v7

48+74 bits

Triable par date, indexation optimale

Anatomie d'un UUID v4 : format et structure

Un UUID s'écrit sous la forme canonique xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx, soit 36 caractères (32 chiffres hexadécimaux + 4 tirets). Le chiffre 4 en cinquième position du troisième groupe identifie la version. Le caractère y (8, 9, a ou b) encode la variante (RFC 4122).

Format : 8-4-4-4-12 caractères hexadécimaux = 128 bits = 16 octets

Exemple illustré : générer un UUID pour une base de données

Prenons le cas d'une application e-commerce qui utilise PostgreSQL et crée des commandes dans un système distribué.

1
Créer l'UUID

crypto.randomUUID() ou gen_random_uuid() en SQL

550e8400-e29b-41d4-a716-446655440000
2
Stocker en base

Type UUID natif PostgreSQL (16 octets, indexable)

INSERT INTO orders (id) VALUES ($1)
3
Exposer via API

L'UUID sert d'identifiant public dans l'URL REST

/api/orders/550e8400-e29b...

5,3 × 10³⁶

Nombre de combinaisons possibles pour un UUID v4 (122 bits d'entropie)

Probabilité de collision : peut-on avoir deux UUID identiques ?

La probabilité de collision suit le paradoxe des anniversaires. Pour un UUID v4 avec 122 bits d'entropie, la probabilité d'obtenir au moins une collision après avoir généré n UUIDs est approximativement :

P(collision) ≈ 1 - e^(-n² / 2 × 2¹²²)

En termes concrets : si vous générez 1 milliard d'UUIDs par seconde pendant 85 ans, la probabilité d'une seule collision serait d'environ 50 %. Pour une application générant 1 000 UUIDs par jour, le risque est si infime qu'il n'a aucune pertinence pratique. La fiabilité du matériel informatique (erreurs mémoire, pannes disque) représente un risque incomparablement plus élevé.

UUID comme clé primaire : avantages et inconvénients

Utiliser un UUID comme clé primaire en base de données présente des avantages majeurs dans les architectures distribuées : aucune coordination nécessaire entre les serveurs, possibilité de générer l'identifiant côté client avant même l'insertion, et absence de fuite d'information sur le volume de données (contrairement à un ID auto-incrémenté qui révèle le nombre total d'enregistrements).

En revanche, les UUIDs v4 aléatoires posent un problème de performance avec les index B-tree : les insertions dispersées provoquent des page splits fréquents. C'est précisément pourquoi UUID v7 a été conçu : en intégrant un timestamp, les valeurs sont naturellement ordonnées et les insertions deviennent séquentielles, préservant les performances d'indexation. Pour générer des hashs de vérification associés à vos identifiants, consultez notre générateur de hash SHA.

Bonne pratique

Si vous utilisez PostgreSQL 17+, préférez la fonction uuidv7() (extension pg_uuidv7) pour vos clés primaires. Vous obtenez l'unicité d'un UUID avec les performances d'insertion d'un identifiant séquentiel.

Erreurs fréquentes à éviter

  • Utiliser Math.random() pour générer un UUID. Cette fonction n'est pas cryptographiquement sûre et produit des valeurs prévisibles. Utilisez toujours crypto.randomUUID() (Web Crypto API) ou un équivalent sécurisé côté serveur.
  • Stocker un UUID en VARCHAR(36) au lieu du type UUID natif. Le type natif occupe 16 octets contre 36 en texte, et bénéficie d'index optimisés. PostgreSQL, MySQL 8+ et SQL Server supportent le type UUID natif.
  • Supposer que UUID v4 est triable. Les UUIDs v4 sont aléatoires et n'ont aucun ordre chronologique. Si vous avez besoin d'un tri par date de création, migrez vers UUID v7 ou ajoutez une colonne created_at.
  • Utiliser un UUID comme token de sécurité. Bien qu'aléatoire, un UUID v4 n'a que 122 bits d'entropie. Pour un token de session ou un secret d'API, préférez 256 bits d'aléa via crypto.getRandomValues(). Vérifiez l'intégrité de vos tokens avec notre générateur de hash.
  • Confondre UUID et ULID/KSUID. Ces formats alternatifs offrent des propriétés similaires à UUID v7 (triabilité, unicité) mais ne sont pas standardisés par l'IETF. Si la conformité RFC est requise, restez sur UUID v7.

Sources et références

Dev & Tech

Sources : RFC 4122 (IETF, 2005) · RFC 9562 (IETF, 2024) · MDN Web Docs · Dernière mise à jour : avril 2026.