Qu'est-ce qu'un UUID ? Une explication complète des identifiants uniques universels
Réponse rapide
Un UUID est un identifiant de 128 bits représenté par 36 caractères (32 chiffres hexadécimaux plus 4 tirets). Les UUID sont pratiquement uniques sans coordination — la probabilité de collision est négligeable. UUID v4 (aléatoire) est la version la plus courante. Utilisez notre générateur UUID gratuit pour créer des UUID dans votre navigateur.
Introduction
Un UUID (Universally Unique Identifier), également appelé GUID (Globally Unique Identifier) dans la terminologie Microsoft, est un identifiant de 128 bits dont l'unicité est pratiquement garantie sans coordination centrale. Les UUID sont définis par la RFC 4122 et sont largement utilisés comme clés primaires de bases de données, ID de requête, jetons de session et identifiants de systèmes distribués. La version la plus courante est UUID v4, qui utilise des bits aléatoires. Un UUID est représenté par 32 chiffres hexadécimaux répartis en 5 groupes séparés par des traits d'union : 8-4-4-4-12 (par exemple, 550e8400-e29b-41d4-a716-446655440000).
Pas à pas
-
Comprendre la structure UUID
Un UUID est composé de 128 bits, affichés sous forme de 32 chiffres hexadécimaux répartis en 5 groupes : 8-4-4-4-12, séparés par des tirets (par exemple, 550e8400-e29b-41d4-a716-446655440000). Le 13ème chiffre indique la version (4 pour la v4) et le 17ème chiffre indique la variante.
-
Apprenez les versions UUID
v1 : basé sur le temps (horodatage + adresse MAC) – ordonné dans le temps mais fuite d'identité. v3 : basé sur le nom avec hachage MD5. v4 : aléatoire – le plus courant, aucun problème de confidentialité. v5 : basé sur le nom avec hachage SHA-1. v6 et v7 : ordonnées dans le temps avec une confidentialité améliorée par rapport à la v1.
-
Comprendre la probabilité de collision
UUID v4 a 2^122 valeurs possibles. La probabilité d'une collision parmi 103 000 milliards d'UUID est de 50 %. Pour une utilisation pratique (des millions d'ID), la probabilité de collision est effectivement nulle : vous pouvez générer des UUID indépendamment sans coordination.
-
Utiliser les UUID de manière appropriée
Utilisez la version v4 pour presque tous les cas d'utilisation (ID de base de données, ID de demande, jetons de session). Utilisez la version v7 si vous avez besoin d'ID classés dans le temps pour la localité de la base de données. Évitez la version v1 dans les contextes sensibles à la sécurité : elle intègre un horodatage et une adresse MAC.
Exemples
UUID v4 (aléatoire)
Saisir: Généré avec crypto.getRandomValues
Sortir: 550e8400-e29b-41d4-a716-446655440000
UUID v1 (basé sur le temps)
Saisir: Horodatage + adresse MAC
Sortir: a3bbf0ee-d6e4-11ed-a5b3-3c9703e8b4a1
Néant __GARDER_15__
Saisir: All zeros
Sortir: 00000000-0000-0000-0000-000000000000
Problèmes courants
- Utiliser Math.random() pour les UUID : il n'est pas sécurisé cryptographiquement. Utilisez crypto.getRandomValues() ou crypto.randomUUID() dans les navigateurs.
- Stockage des UUID sous forme de chaînes : une chaîne UUID fait 36 octets ; stocké sous la forme UUID (16 octets), il est plus efficace. Utilisez le type natif UUID dans les bases de données lorsqu'il est disponible.
- Utilisation de la v1 dans des contextes sensibles en matière de sécurité : la v1 intègre un horodatage et une adresse MAC, ce qui peut divulguer des informations sur le moment et l'endroit où elles ont été générées. Utilisez la v4 pour l'anonymat.
- En supposant que les UUID soient vraiment uniques, ils sont pratiquement uniques (la probabilité de collision est négligeable), mais leur unique n'est pas mathématiquement garantie.
Conseils
- Utilisez UUID v4 pour presque tous les cas d'utilisation : il est aléatoire, ne pose aucun problème de confidentialité et est pris en charge par toutes les bases de données modernes.
- Utilisez crypto.randomUUID() dans les navigateurs modernes pour un générateur v4 intégré sans bibliothèque.
- Stockez les UUID sous le type UUID/GUID dans des bases de données (16 octets) au lieu de chaînes (36 octets) pour de meilleures performances de stockage et d'index.
- Utilisez notre générateur UUID pour créer instantanément des UUID dans votre navigateur – sans inscription, entièrement privé.