Αποκωδικοποιητής και Επαληθευτής UUID

Αποκωδικοποιήστε και επαληθεύστε UUID για να εξαγάγετε έκδοση, χρονική σήμανση και μεταδεδομένα

Δοκιμάστε αυτά τα παραδείγματα:

Τι είναι η αποκωδικοποίηση UUID;

Αποκωδικοποίηση UUID είναι η διαδικασία ανάλυσης ενός UUID για την εξαγωγή πληροφοριών σχετικά με το:

  • Version: Ποια έκδοση UUID (1-8) βασίζεται σε 4 bits στη θέση 48-51
  • Variant: Ποια παραλλαγή UUID (συνήθως RFC 4122) βασίζεται στα bits 64-65
  • Components: Εξαγωγή χρονικής σήμανσης, αναγνωριστικού κόμβου ή άλλων δεδομένων βάσει έκδοσης
  • Χρόνος δημιουργίας: Για UUIDs με βάση το χρόνο (v1, v6, v7)

Example: 123e4567-e89b-12d3-a456-426614174000 είναι ένα UUID Έκδοσης 1 που δημιουργήθηκε στις 2018-10-03 09:45:32 UTC.

Επισκόπηση δομής UUID

FormatDescription
8-4-4-4-1232 δεκαεξαδικά ψηφία ομαδοποιημένα με παύλες
Bits έκδοσηςBits 48-51 (13ος χαρακτήρας)
Bits παραλλαγήςBits 64-65 (17ο ψηφίο)

Ο αριθμός έκδοσης εμφανίζεται ως το πρώτο δεκαεξαδικό ψηφίο στην τρίτη ομάδα (π.χ., 123e4567-e89b-12d3-a456-426614174000 για την έκδοση 1).

Αποκωδικοποίηση ανά έκδοση UUID

VersionΤι μπορεί να αποκωδικοποιηθεί
UUID v1
  • Χρονική σήμανση (με ακρίβεια 100ns, από 15 Οκτωβρίου 1582)
  • Διεύθυνση MAC (αν δεν είναι τυχαία)
  • Ακολουθία ρολογιού (για αποφυγή συγκρούσεων)
UUID v3/v5
  • Δεν μπορεί να αποκωδικοποιήσει το αρχικό εισαγόμενο
  • Μπορεί να επαληθεύσει αν δημιουργήθηκε από γνωστές εισόδους
  • Μπορεί να διακρίνει μεταξύ v3 (MD5) και v5 (SHA-1)
UUID v4
  • Μόνο τυχαία δεδομένα
  • Δεν υπάρχουν εξαγώγιμες πληροφορίες
  • Μπορεί να επαληθεύσει ότι είναι έγκυρο UUID v4
UUID v6
  • Χρονική σήμανση (με ακρίβεια 100ns, από 15 Οκτωβρίου 1582)
  • Διεύθυνση MAC (αν δεν είναι τυχαία)
  • Ακολουθία ρολογιού (για αποφυγή συγκρούσεων)
UUID v7
  • Χρονική σήμανση Unix (με ακρίβεια χιλιοστού του δευτερολέπτου)
  • Τυχαίο συστατικό (μη αποκωδικοποιήσιμο)
ULID
  • Χρονική σήμανση Unix (με ακρίβεια χιλιοστού του δευτερολέπτου)
  • Τυχαίο συστατικό (μη αποκωδικοποιήσιμο)

Εξαγωγή χρονικής σήμανσης από UUIDs

Τύπος UUIDΜέθοδος εξαγωγής χρόνουEpoch
UUID v1Συνδυασμός bits 0-31, 32-47, και 48-59, αναδιάταξη συστατικών χρονικής σήμανσης15 Οκτωβρίου 1582
UUID v6Εξαγωγή bits 0-59 (ήδη στη σωστή σειρά)15 Οκτωβρίου 1582
UUID v7Εξαγωγή bits 0-47 (Unix milliseconds)1 Ιανουαρίου 1970
ULIDΑποκωδικοποίηση των πρώτων 10 χαρακτήρων Base32 για λήψη 48-bit Unix milliseconds1 Ιανουαρίου 1970

Κανόνες επικύρωσης UUID

  • Έλεγχος μορφής: 8-4-4-4-12 δεκαεξαδικά ψηφία με παύλες
  • Έλεγχος έκδοσης: Ο 13ος χαρακτήρας πρέπει να είναι 1-8
  • Έλεγχος παραλλαγής: Ο 17ος χαρακτήρας πρέπει να είναι 8, 9, A ή B (για RFC 4122)

Κανονική έκφραση για βασική επικύρωση UUID:

^[0-9a-f]8-[0-9a-f]4-[1-8][0-9a-f]3-[89ab][0-9a-f]3-[0-9a-f]12$

Πρακτικές εφαρμογές

  • Δικαστική ανάλυση: Προσδιορισμός πότε δημιουργήθηκαν τα αναγνωριστικά
  • Debugging: Παρακολούθηση συμπεριφοράς συστήματος μέσω χρονικών σημάτων αναγνωριστικών
  • Auditing: Επικύρωση χρονολογικής ακεραιότητας
  • Ανάλυση ασφάλειας: Ανίχνευση πλαστών ή παραποιημένων αναγνωριστικών
  • Ανάκτηση δεδομένων: Ανακατασκευή χρονικών σχέσεων
  • Μεταναστεύσεις συστημάτων: Κατανόηση λεπτομερειών υλοποίησης παλαιού τύπου UUID

Εξαγωγή διεύθυνσης MAC (v1/v6)

Για UUID v1 και v6, μπορείτε συχνά να εξαγάγετε το αναγνωριστικό κόμβου (διεύθυνση MAC) αν δεν ήταν τυχαίο κατά τη δημιουργία:

  1. Εξαγωγή των τελευταίων 12 δεκαεξαδικών ψηφίων (48 bits) από το UUID
  2. Μορφή με άνω και κάτω τελείες ως XX:XX:XX:XX:XX:XX
  3. Ελέγξτε αν η διεύθυνση MAC είναι πραγματική ή τυχαία εξετάζοντας το bit multicast

Αν το πρώτο byte έχει το bit 0x01 ενεργοποιημένο, πιθανότατα είναι τυχαίο αναγνωριστικό κόμβου και όχι πραγματική διεύθυνση MAC.

Συχνές ερωτήσεις

Μπορώ να προσδιορίσω ακριβώς πότε δημιουργήθηκε ένα UUID v4;

Όχι. Το UUID v4 είναι καθαρά τυχαίο χωρίς πληροφορίες χρονικής σήμανσης. Ο χρόνος δημιουργίας δεν μπορεί να προσδιοριστεί από μια τιμή UUID v4.

Πόσο ακριβείς είναι οι χρονικές σήμανσεις σε UUIDs με βάση το χρόνο;

Οι χρονικές σήμανσεις UUID v1/v6 έχουν ακρίβεια 100 νανοδευτερολέπτων. Τα UUID v7 και ULID έχουν ακρίβεια χιλιοστού του δευτερολέπτου. Ωστόσο, η πραγματική ακρίβεια του συστήματος μπορεί να διαφέρει.

Μπορώ να μετατρέψω μεταξύ εκδόσεων UUID;

Όχι, δεν μπορείτε να μετατρέψετε απευθείας μεταξύ εκδόσεων διατηρώντας την ίδια τιμή αναγνωριστικού. Οι διαφορετικές εκδόσεις έχουν θεμελιωδώς διαφορετικές δομές.

Μπορώ να εντοπίσω τον υπολογιστή που δημιούργησε ένα UUID v1;

Αν το αναγνωριστικό κόμβου δεν ήταν τυχαίο, ένα UUID v1 μπορεί να περιέχει τη διεύθυνση MAC του συστήματος που το δημιούργησε. Ωστόσο, πολλές σύγχρονες υλοποιήσεις το τυχαίοποιούν για λόγους απορρήτου.

Πώς μπορώ να καταλάβω αν ένα UUID είναι έγκυρο;

Ελέγξτε τη μορφή (8-4-4-4-12 δεκαεξαδικά ψηφία), επαληθεύστε το ψηφίο έκδοσης (13ος χαρακτήρας) να είναι 1-8, και επιβεβαιώστε τα bits παραλλαγής (ο 17ος χαρακτήρας είναι 8, 9, A ή B για UUIDs RFC 4122).

Resources