Les UUID (Universally Unique Identifiers) sont la solution standard pour générer des identifiants uniques sans coordination centrale. Utilisés massivement dans les bases de données distribuées, les APIs REST, les systèmes de fichiers, et les architectures microservices.
Comment fonctionne un UUID v4 ?
Un UUID v4 est un identifiant de 128 bits dont 122 sont générés aléatoirement. Le format est xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx où le 4 indique la version et y est restreint à [8,9,a,b]. Avec 5.3×10³⁶ combinaisons, la probabilité de collision est astronomiquement faible.
Cas d'usage
Clés primaires de base de données
Utilisez des UUID comme clés primaires pour éviter les conflits lors de la fusion de bases de données ou la réplication.
APIs REST
Exposez des UUID au lieu d'auto-increments pour ne pas révéler le nombre d'enregistrements et éviter les attaques par énumération.
Systèmes distribués
Générez des identifiants uniques sur chaque nœud sans coordination centrale.
Tracking et analytics
Assignez des UUID aux sessions, événements, ou transactions pour le suivi et le debugging.
Exemples concrets
| Entrée | Résultat |
|---|---|
| 1 UUID | 550e8400-e29b-41d4-a716-446655440000 |
| Sans tirets | 550e8400e29b41d4a716446655440000 |
| Majuscules | 550E8400-E29B-41D4-A716-446655440000 |
Erreurs fréquentes
❌ Utiliser Math.random() pour générer des UUID
✅ Utilisez crypto.getRandomValues() ou crypto.randomUUID() pour une sécurité cryptographique.
❌ Trier par UUID v4
✅ Les UUID v4 sont aléatoires et fragmentent les index B-tree. Utilisez UUID v7 (chronologique) si le tri est important.
❌ UUID trop long pour une URL
✅ Encodez en Base62 ou Base64URL pour réduire de 36 à 22 caractères.
Conseils d'expert
- 💡JavaScript natif : crypto.randomUUID() (navigateurs modernes)
- 💡Python : import uuid; uuid.uuid4()
- 💡PostgreSQL : gen_random_uuid() (v13+) ou uuid_generate_v4() (extension uuid-ossp)
- 💡UUID v7 (2022) est chronologique et plus performant pour les index de base de données