Les UUID sont le format d’identifiant par défaut pour les bases de données, les API et les systèmes distribués. Que vous initialisiez une base de données de test, génériez des clés API ou créiez des clés primaires pour un nouveau schéma, vous avez besoin d’un moyen de les générer rapidement. Un générateur UUID est l’un de ces outils auxquels chaque développeur a recours occasionnellement.
La question en 2026 n’est plus « quelle version UUID » — c’est « v4 ou v7 ? »
UUID v4 vs v7 : lequel utiliser
UUID v4 est purement aléatoire. 122 bits aléatoires, 6 bits pour la version et la variante. Pas de pattern, pas de corrélation temporelle, aucun moyen de deviner le prochain ID.
Utilisez v4 pour :
- Jetons de session
- Liens de réinitialisation de mot de passe
- Clés API distribuées à des tiers
- Tout ce où l’ID lui-même constitue la limite de sécurité
UUID v7 est ordonné dans le temps. Les 48 premiers bits sont un horodatage Unix à précision milliseconde, suivis de bits aléatoires. Les UUID générés dans la même milliseconde sont triés par ordre d’insertion.
Utilisez v7 pour :
- Clés primaires de base de données (insertions 4x plus rapides que v4 sur MySQL)
- IDs de journal d’événements
- IDs de messages de file d’attente
- Identifiants de système distribué où vous souhaitez un ordre approximatif
Le benchmark PlanetScale (2024) a montré des insertions UUID v7 à 18 000/sec contre UUID v4 à 4 500/sec sur MySQL 8. La différence de 4x vient de l’indexation B-tree : les insertions aléatoires v4 causent des scissions de pages, les insertions séquentielles v7 vont vers le côté droit de l’arbre.
Comment générer des UUID dans le navigateur
Le moyen le plus rapide :
crypto.randomUUID() // → "550e8400-e29b-41d4-a716-446655440000"
Cela renvoie un UUID v4. Pour v7, vous avez besoin d’un petit polyfill combinant crypto.getRandomValues avec un préfixe d’horodatage.
Le générateur UUID sur DevSpeedTools produit à la fois v4 et v7 dans le navigateur en utilisant directement crypto.getRandomValues. Générez un UUID ou générez-en 100 en masse — aucune installation, aucun serveur, aucun envoi.
Génération UUID en masse
Pour les données de test, vous avez souvent besoin de centaines ou de milliers d’UUID. Le navigateur peut générer des UUID v4 à des millions par seconde en utilisant crypto.randomUUID() dans une boucle. Pour v7, le composant d’horodatage signifie que vous ne pouvez pas en générer plus d’un par milliseconde avec une unicité garantie — mais le suffixe aléatoire vous donne une résistance aux collisions suffisante pour des usages pratiques.
Variations de format UUID
Différents systèmes attendent différents formats UUID :
| Format | Exemple | Cas d’utilisation |
|---|---|---|
| Standard | 550e8400-e29b-41d4-a716-446655440000 |
La plupart des bases de données, API |
| Sans tirets | 550e8400e29b41d4a716446655440000 |
Certaines API, paramètres d’URL |
| Majuscules | 550E8400-E29B-41D4-A716-446655440000 |
Systèmes hérités |
| Accolades | {550e8400-e29b-41d4-a716-446655440000} |
GUIDs Microsoft |
Le format standard avec tirets est la valeur par défaut la plus sûre. La plupart des bases de données et ORMs acceptent toutes les variantes.
Erreurs UUID courantes
- Utiliser v4 pour les clés primaires de base de données. Les UUID aléatoires détruisent les performances en écriture à grande échelle. Utilisez v7 pour les nouveaux schémas.
- Supposer que les UUID sont séquentiels. v4 est aléatoire. v7 est ordonné dans le temps mais pas séquentiel dans une milliseconde.
- Stocker les UUID comme des chaînes. Les UUID font 16 octets en binaire. Les stocker comme une chaîne de 36 caractères gaspille 20 octets par ligne et ralentit les index. Utilisez le type UUID natif dans Postgres, MySQL 8+ ou SQLite avec des extensions.
- Oublier les bits de variante. Les UUID ont des bits de variante qui affectent le premier chiffre hexadécimal du troisième groupe. Ne les supprimez pas.
Générez des UUID maintenant
Si vous avez besoin d’un UUID maintenant, utilisez un générateur dans le navigateur. Le générateur UUID sur DevSpeedTools produit des UUID v4 et v7 instantanément, avec copie dans le presse-papiers et génération en masse. Aucun envoi, aucun compte, aucun serveur — vos UUID sont générés localement en utilisant crypto.getRandomValues.