Αποκωδικοποιητής UUID και Εξαγωγέας Χρονικών Σφραγίδων

Αποκωδικοποιήστε χρονικές σφραγίδες UUID v1, v6 και v7 ως ISO UTC και Unix time, και ελέγξτε την έκδοση και τα μεταδεδομένα.

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

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

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

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

Example: 123e4567-e89b-12d3-a456-426614174000 είναι ένα Version 1 UUID με τη χρονική σφραγίδα 2228-06-25T20:01:28.545Z όταν εμφανίζεται με ακρίβεια millisecond στο JavaScript.

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

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

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

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

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

Εξαγωγή χρονικής σφραγίδας από UUID

Τύπος UUIDΜέθοδος Εξαγωγής ΧρόνουEpoch
UUID v1Συνδυάστε τα bit 0-31, 32-47 και 48-59, αναδιατάσσοντας τα συστατικά της χρονικής σφραγίδας15 Οκτωβρίου 1582
UUID v6Συνδυάστε τα bit 0-47 με τα bit 52-63· τα bit 48-51 είναι η έκδοση και εξαιρούνται15 Οκτωβρίου 1582
UUID v7Εξαγάγετε τα bit 0-47 (Unix milliseconds)1 Ιανουαρίου 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}$

Παράδειγμα χρονικής σφραγίδας UUID v7

017f22e2-79b0-7cc3-98c4-dc0c0c07398f είναι ο δοκιμαστικός φορέας UUIDv7 του RFC 9562. Τα πρώτα 48 bit του είναι Unix milliseconds, που αποκωδικοποιούνται σε 2022-02-22T19:22:22.000Z, 1645557742000 χιλιοστά του δευτερολέπτου, ή 1645557742 seconds.

Δημιουργήστε ένα νέο UUID v7, ή συνεχίστε με το Μετατροπέας Unix Χρονικής Σφραγίδας. Αυτοί οι σύνδεσμοι δεν περιλαμβάνουν το UUID που καταχωρήσατε.

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

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

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

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

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

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

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

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

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

Πόσο ακριβείς είναι οι χρονικές σφραγίδες σε χρονοβασισμένα UUID;

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

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

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

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

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

Πώς μπορώ να ξέρω αν ένα UUID είναι έγκυρο;

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

Resources