Quel type de données pouvez-vous extraire d'un UUID?
Je sais que l'on peut facilement extraire les uuid numéro de version. Est-il un moyen fiable pour extraire des informations comme l'horodatage, l'adresse MAC?
Merci!
source d'informationauteur Chris Frost
Vous devez vous connecter pour publier un commentaire.
Un standard conforme UUID peut-être l'un de plusieurs variantes, il ressemble à ceci:
AAAAAAAA-BBBB-CCCC-DDDD-FFFFFFFFFFFF
La première (hex)chiffres de la DDDD partie détermine la variante.
Si c'est de 8,9,A,B, il est conforme à la spécialisation actuelle
(0-7 sont réservés pour des raisons de compatibilité ascendante, C,D sont réservés pour Microsoft, et E,F sont réservés pour une utilisation future)
Si elle est conforme à la spécialisation actuelle, vérifier le premier chiffre de la CCCC partie qui détermine le UUID version:
Version 4 est tout simplement choisi au hasard.
Version 3 et 5 sont générés par le malaxage et de jeter quelques morceaux, ce qui signifie que vous avez fondamentalement aucune chance de récupérer des informations à partir d'elle. Les détails sur la façon de construire, il peut être trouvé dans RFC4122 ou à la UUID Générateur de page web.
Je ne pouvais pas trouver n'importe quelle version 2 Uuid donc je n'ai pas vérifier comment extraire les données.
La Version 1 est généré à partir de l'heure et de l'hôte actuel de l'adresse MAC.
(La norme permet également d'utiliser une adresse aléatoire à la place si vous définissez le "broadcast/multicast" bits de l'adresse MAC.)
Le perl suivant ciselée analyse de l'adresse MAC et l'Heure à partir d'une version 1 uuid:
Et le dernier mais non le moindre, il y a plusieurs attribué Uuid, par exemple pour Partitions GPT.
Pas nécessairement de manière fiable, parce que, selon le genre de l'UUID de la il est, il peut être généré totalement de bits aléatoires, ou timestamp, ou être basée sur l'adresse MAC. Donc, vous pourriez être en mesure de récupérer une partie de l'information, mais vous ne pouvez pas garantir que vous pouvez obtenir quoi que ce soit.
La référence officielle en pour ce qui est RFC 4122qui devrait probablement vous donner assez d'informations pour en extraire les données, bien que vous ne devriez pas compter sur elle trop lourdement.
Si c'est une version 1 UUID, l'adresse MAC sera les douze derniers chiffres hexadécimaux.
Je sais que l'on peut facilement extraire les uuid numéro de version. Est-il un moyen fiable pour extraire des informations comme l'horodatage, l'adresse MAC?
Oui, et Oui; si l'UUID est la version 1 ou version 2 (comme décrit dans la RFC 4122). Il y a aussi un autre (non-RFC 4122) de la version 4, surnommé "PEIGNE" qui comprend un horodatage (ainsi que des valeurs aléatoires) qui peut être analysé, et la date/heure de création peut être révélé.
Bonus: Mahonri Moriancumer de L'UUID et le GUID du Générateur et de la Criminalistique.
Vous pouvez consulter la version de l'Uuid, mais qui ne peut être approuvé que si vous êtes sûr que l'Uuid est valide (voir http://tools.ietf.org/html/rfc4122). La version va vous dire quel genre de Uuid vous avez, et l'aide que vous pouvez extraire les bits de l'information.
La OSSP uuid outil peut décoder les Uuid de toutes les versions. Sur Debian-Linux basée sur les systèmes que vous pouvez utiliser
apt-get install uuid
de l'installer; pour les autres distributions, le nom du package peuvent être différentes.Pour décoder un UUID, utilisez la
-d
(décoder) drapeau:Pour la version 1 Uuid, cela donne l'adresse MAC et l'horodatage -- puisque c'est une v1 uuid.