Was ist UUID-Dekodierung?
UUID-Dekodierung ist der Prozess der Analyse einer UUID, um Informationen über Folgendes zu extrahieren:
- Version: Welche UUID-Version (1–8) basierend auf 4 Bits in Position 48–51
- Variant: Welche UUID-Variante (gewöhnlich RFC 4122) basierend auf Bits 64–65
- Components: Extrahieren von Zeitstempel, Node-ID oder anderen Daten basierend auf der Version
- Erstellungszeit: Für zeitbasierte UUIDs (v1, v6, v7)
Example: 123e4567-e89b-12d3-a456-426614174000 ist eine Version-1-UUID mit dem Zeitstempel 2228-06-25T20:01:28.545Z wenn sie mit JavaScript-Millisekunden-Genauigkeit angezeigt wird.
Übersicht zur UUID-Struktur
| Format | Description |
|---|---|
| 8-4-4-4-12 | 32 Hex-Ziffern gruppiert mit Bindestrichen |
| Versions-Bits | Bits 48–51 (13. Ziffer) |
| Varianten-Bits | Bits 64–65 (17. Ziffer) |
Die Versionsnummer erscheint als erste Hex-Ziffer in der dritten Gruppe (z. B., 123e4567-e89b-12d3-a456-426614174000 für Version 1).
Dekodierung nach UUID-Version
| Version | Was dekodiert werden kann |
|---|---|
| UUID v1 |
|
| UUID v3/v5 |
|
| UUID v4 |
|
| UUID v6 |
|
| UUID v7 |
|
Zeitstempel-Extraktion aus UUIDs
| UUID-Typ | Zeit-Extraktionsmethode | Epoch |
|---|---|---|
| UUID v1 | Kombinieren Sie die Bits 0–31, 32–47 und 48–59 und ordnen Sie die Zeitstempelkomponenten neu | 15. Oktober 1582 |
| UUID v6 | Kombinieren Sie Bits 0–47 mit Bits 52–63; Bits 48–51 sind die Version und werden ausgeschlossen | 15. Oktober 1582 |
| UUID v7 | Extrahieren Sie die Bits 0–47 (Unix-Millisekunden) | 1. Januar 1970 |
Regeln zur UUID-Validierung
- Formatprüfung: 8-4-4-4-12 hexadezimale Ziffern mit Bindestrichen
- Versionsprüfung: Das 13. Zeichen muss 1–8 sein
- Variante prüfen: Das 17. Zeichen muss 8, 9, A oder B sein (für RFC 4122)
Regulärer Ausdruck zur grundlegenden UUID-Validierung:
^[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-Zeitstempel-Beispiel
017f22e2-79b0-7cc3-98c4-dc0c0c07398f ist der RFC 9562 UUIDv7-Testvektor. Seine ersten 48 Bits sind Unix-Millisekunden, die dekodiert ergeben 2022-02-22T19:22:22.000Z, 1645557742000 Millisekunden oder 1645557742 seconds.
Erzeugen Sie eine neue UUID v7, oder fahren Sie fort mit der Unix-Zeitstempel-Konverter. Diese Links enthalten nicht die von Ihnen eingegebene UUID.
Praktische Anwendungen
- Forensische Analyse: Bestimmung, wann IDs erstellt wurden
- Debugging: Nachverfolgung des Systemverhaltens über ID-Zeitstempel
- Auditing: Validierung der chronologischen Integrität
- Formatprüfungen: Erkennen von fehlerhaften IDs; eine gültige UUID beweist keine Authentizität
- Datenwiederherstellung: Rekonstruktion zeitlicher Beziehungen
- Systemmigrationen: Verständnis von Details älterer UUID-Implementierungen
MAC-Adress-Extraktion (v1/v6)
Bei UUID v1 und v6 können Sie oft den Node-Identifier (MAC-Adresse) extrahieren, wenn er bei der Generierung nicht randomisiert wurde:
- Extrahieren Sie die letzten 12 Hex-Ziffern (48 Bits) aus der UUID
- Formatieren Sie sie mit Doppelpunkten als XX:XX:XX:XX:XX:XX
- Prüfen Sie, ob die MAC-Adresse echt oder randomisiert ist, indem Sie das Multicast-Bit untersuchen
Wenn im ersten Byte Bit 0x01 gesetzt ist, handelt es sich wahrscheinlich um eine randomisierte Node-ID und nicht um eine echte MAC-Adresse.
Häufig gestellte Fragen
Kann ich genau bestimmen, wann eine UUID v4 erstellt wurde?
Nein. UUID v4 ist rein zufällig und enthält keine Zeitstempelinformationen. Die Erstellungszeit kann nicht aus einer UUID v4 abgeleitet werden.
Wie genau sind Zeitstempel in zeitbasierten UUIDs?
UUID-v1/-v6-Zeitstempel haben 100-Nanosekunden-Genauigkeit. UUID v7 hat Millisekunden-Genauigkeit. Die tatsächliche Systemuhr kann jedoch abweichen.
Kann ich zwischen UUID-Versionen konvertieren?
Nein, Sie können nicht direkt zwischen Versionen konvertieren und denselben Bezeichnerwert beibehalten. Verschiedene Versionen haben grundlegend unterschiedliche Strukturen.
Kann ich den Computer identifizieren, der eine UUID v1 erzeugt hat?
Wenn die Node-ID nicht randomisiert wurde, kann eine UUID v1 die MAC-Adresse des erzeugenden Systems enthalten. Viele moderne Implementierungen randomisieren dies jedoch aus Datenschutzgründen.
Wie kann ich feststellen, ob eine UUID gültig ist?
Überprüfen Sie das Format (8-4-4-4-12 hexadezimale Ziffern), verifizieren Sie, dass die Versionsziffer (13. Zeichen) 1–8 ist, und bestätigen Sie die Varianten-Bits (17. Zeichen ist 8, 9, A oder B für RFC 4122 UUIDs).