Qu'est-ce que le décodage UUID ?
Le décodage 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
- Variante : Quelle variante d'UUID (généralement RFC 4122) basée sur les bits 64-65
- Composants : Extraction d'horodatage, d'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)
Exemple : 123e4567-e89b-12d3-a456-426614174000
est un UUID Version 1 créé le 2018-10-03 09:45:32 UTC.
Aperçu de la structure UUID
Format | Description |
---|---|
8-4-4-4-12 | 32 chiffres hexadécimaux regroupés avec des tirets |
Bits de version | Bits 48-51 (13e chiffre) |
Bits de variante | 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 UUID
Version | Ce qui peut être décodé |
---|---|
UUID v1 |
|
UUID v3/v5 |
|
UUID v4 |
|
UUID v6 |
|
UUID v7 |
|
ULID |
|
Extraction d'horodatage des UUID
Type d'UUID | Méthode d'extraction temporelle | Époque |
---|---|---|
UUID v1 | Combiner les bits 0-31, 32-47 et 48-59, en réorganisant les composants d'horodatage | 15 octobre 1582 |
UUID v6 | Extraire les bits 0-59 (déjà dans le bon ordre) | 15 octobre 1582 |
UUID v7 | Extraire les bits 0-47 (millisecondes Unix) | 1er janvier 1970 |
ULID | Décoder les 10 premiers caractères Base32 pour obtenir 48 bits de millisecondes Unix | 1er janvier 1970 |
Règles de validation UUID
- Vérification du format : 8-4-4-4-12 chiffres hexadécimaux avec tirets
- Vérification de version : Le 13e caractère doit être 1-8
- Vérification de variante : Le 17e caractère doit être 8, 9, A ou B (pour RFC 4122)
Expression régulière pour la validation UUID de base :
^[0-9a-f]8-[0-9a-f]4-[1-8][0-9a-f]3-[89ab][0-9a-f]3-[0-9a-f]12$
Applications pratiques
- Analyse forensique : Déterminer quand les ID ont été créés
- Débogage : Tracer le comportement du système via les horodatages d'ID
- Audit : Validation de l'intégrité chronologique
- Analyse de sécurité : Détection d'ID falsifiés ou manipulés
- Récupération de données : Reconstruction des relations temporelles
- Migrations de système : Comprendre les détails d'implémentation des UUID hérités
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 :
- Extrayez les 12 derniers chiffres hexadécimaux (48 bits) de l'UUID
- Formatez avec des deux-points comme XX:XX:XX:XX:XX:XX
- Vérifiez si l'adresse MAC est réelle ou aléatoire en examinant le bit de multidiffusion
Si le premier octet a le bit 0x01 défini, il s'agit probablement d'un ID de nœud randomisé plutôt qu'une adresse MAC réelle.
Foire aux questions
Puis-je déterminer exactement quand un UUID v4 a été créé ?
Non. L'UUID v4 est purement aléatoire sans information d'horodatage. L'heure de création ne peut pas être déterminée à partir d'une valeur UUID v4.
Quelle est la précision des horodatages dans les UUID basés sur le temps ?
Les horodatages UUID v1/v6 ont une précision de 100 nanosecondes. UUID v7 et ULID ont une précision milliseconde. Cependant, la précision réelle de l'horloge système peut varier.
Puis-je convertir entre les versions UUID ?
Non, vous ne pouvez pas convertir directement entre les versions tout en préservant la même valeur d'identifiant. Les différentes 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 randomisent cela pour des raisons de confidentialité.
Comment puis-je savoir si un UUID est valide ?
Vérifiez le format (8-4-4-4-12 chiffres hexadécimaux), vérifiez que le chiffre de version (13e caractère) est 1-8, et confirmez que les bits de variante (17e caractère est 8, 9, A ou B pour les UUID RFC 4122).