Qu'est-ce que le décodage d'UUID ?
Décodage d'UUID est le processus d'analyse d'un UUID pour extraire des informations sur :
- Version: Quelle version d'UUID (1-8) basée sur 4 bits en position 48-51
- Variant: Quel variant d'UUID (généralement RFC 4122) basé sur les bits 64-65
- Components: Extraction de l'horodatage, de l'ID de nœud ou d'autres données selon la version
- Heure de génération: Pour les UUID basés sur le temps (v1, v6, v7)
Example: 123e4567-e89b-12d3-a456-426614174000 est un UUID de version 1 avec l'horodatage 2228-06-25T20:01:28.545Z lorsqu'il est affiché à la précision milliseconde de JavaScript.
Aperçu de la structure des UUID
| Format | Description |
|---|---|
| 8-4-4-4-12 | 32 chiffres hexadécimaux groupés par des tirets |
| Bits de version | Bits 48-51 (13e chiffre) |
| Bits de variant | Bits 64-65 (17e chiffre) |
Le numéro de version apparaît comme le premier chiffre hexadécimal du troisième groupe (par exemple, 123e4567-e89b-12d3-a456-426614174000 pour la version 1).
Décodage par version d'UUID
| Version | Ce qui peut être décodé |
|---|---|
| UUID v1 |
|
| UUID v3/v5 |
|
| UUID v4 |
|
| UUID v6 |
|
| UUID v7 |
|
Extraction d'horodatage depuis les UUID
| Type d'UUID | Méthode d'extraction du temps | Epoch |
|---|---|---|
| UUID v1 | Combiner les bits 0-31, 32-47 et 48-59 en réordonnant les composants d'horodatage | 15 octobre 1582 |
| UUID v6 | Combiner les bits 0-47 avec les bits 52-63 ; les bits 48-51 correspondent à la version et sont exclus | 15 octobre 1582 |
| UUID v7 | Extraire les bits 0-47 (millisecondes Unix) | 1er janvier 1970 |
Règles de validation des UUID
- Vérification du format: 8-4-4-4-12 chiffres hexadécimaux avec des tirets
- Vérification de la version: le 13e caractère doit être 1-8
- Vérification du variant: le 17e caractère doit être 8, 9, A ou B (pour RFC 4122)
Expression régulière pour une validation basique d'UUID :
^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$Exemple d'horodatage UUID v7
017f22e2-79b0-7cc3-98c4-dc0c0c07398f est le vecteur de test RFC 9562 pour UUIDv7. Ses 48 premiers bits sont des millisecondes Unix, qui décodent en 2022-02-22T19:22:22.000Z, 1645557742000 millisecondes, ou 1645557742 seconds.
Générer un nouveau UUID v7, ou continuer avec le Convertisseur d'horodatage Unix. Ces liens n'incluent pas l'UUID que vous avez saisi.
Applications pratiques
- Analyse judiciaire: Déterminer quand les identifiants ont été créés
- Debugging: Tracer le comportement du système via les horodatages des ID
- Auditing: Valider l'intégrité chronologique
- Vérifications de format: Détection d'IDs malformés ; un UUID valide ne prouve pas l'authenticité
- Récupération de données: Reconstruction des relations temporelles
- Migrations de système: Comprendre les détails des implémentations UUID héritées
Extraction d'adresse MAC (v1/v6)
Pour les UUID v1 et v6, vous pouvez souvent extraire l'identifiant de nœud (adresse MAC) s'il n'a pas été randomisé lors de la génération :
- Extraire les 12 derniers chiffres hexadécimaux (48 bits) de l'UUID
- Formater avec des deux-points en XX:XX:XX:XX:XX:XX
- Vérifier si l'adresse MAC est réelle ou aléatoire en examinant le bit multicast
Si le premier octet a le bit 0x01 défini, il s'agit probablement d'un ID de nœud randomisé plutôt que d'une véritable adresse MAC.
Questions fréquemment posées
Puis-je déterminer exactement quand un UUID v4 a été créé ?
Non. L'UUID v4 est purement aléatoire et ne contient aucune information temporelle. Le moment de création ne peut pas être déterminé à partir d'une valeur UUID v4.
Quelle est la précision des horodatages dans les UUID basés sur le temps ?
Les horodatages des UUID v1/v6 ont une précision de 100 nanosecondes. L'UUID v7 a une précision milliseconde. Cependant, la précision réelle de l'horloge système peut varier.
Puis-je convertir entre les versions d'UUID ?
Non, vous ne pouvez pas convertir directement entre les versions tout en conservant la même valeur d'identifiant. Les versions ont des structures fondamentalement différentes.
Puis-je identifier l'ordinateur qui a généré un UUID v1 ?
Si l'ID de nœud n'a pas été randomisé, un UUID v1 peut contenir l'adresse MAC du système générateur. Cependant, de nombreuses implémentations modernes la randomisent pour la confidentialité.
Comment savoir si un UUID est valide ?
Vérifiez le format (8-4-4-4-12 hexadécimaux), confirmez que le chiffre de version (13e caractère) est entre 1 et 8, et vérifiez les bits de variant (le 17e caractère doit être 8, 9, A ou B pour les UUID RFC 4122).