UUID Version Detector
Identify the version (v1, v3, v4, v5, v6, v7, v8) and variant of any UUID and extract embedded timestamps.
Geprüft von Aygul Dovletova · Zuletzt geprüft
Den UUID-Versions-Erkenner verwenden
- Eine UUID einfügen in das Eingabefeld. Du kannst die kanonische 8-4-4-4-12-Bindestriche-Form (
550e8400-e29b-41d4-a716-446655440000), die blanke 32-Hex-Form oder einen Microsoft-Wert in geschweiften Klammern einfügen. Groß-/Kleinschreibung wird ignoriert. - Die erkannte Version ablesen. Der Erkenner zieht das 13. Hexadezimalzeichen (das erste Zeichen der dritten Gruppe, direkt nach dem zweiten Bindestrich) und meldet es als v1, v3, v4, v5, v6, v7 oder v8 mit einer kurzen Beschreibung des Algorithmus.
- Die Variante inspizieren. Die hohen Bits des 17. Hex-Zeichens (erstes Zeichen der vierten Gruppe) teilen dir mit, welcher UUID-Spezifikationsfamilie der Wert angehört. Moderne UUIDs sind Variante 10xx (RFC 4122 / RFC 9562); der Erkenner markiert explizit die Legacy-NCS-, Microsoft-GUID- und zukunftsreservierte Varianten, wenn er sie sieht.
- Den eingebetteten Zeitstempel verwenden. Bei v1, v6 und v7 dekodiert der Erkenner den eingebetteten Erstellungszeitstempel und zeigt ihn im ISO-8601-Format an. Du kannst ihn in eine Protokollsuche einfügen, um das ursprüngliche Ereignis zu finden.
- Den Bericht kopieren mit einem einzigen Klick. Die Zwischenablage erhält eine Klartext-Zusammenfassung, die du in einen Slack-Thread, einen Fehlerbericht oder einen Code-Review-Kommentar einfügen kannst.
Was jede UUID-Version bedeutet
UUIDs sehen auf den ersten Blick identisch aus, kodieren aber sehr unterschiedliche Generierungsstrategien, und sie alle gleich zu behandeln ist die Quelle einer ganzen Klasse von subtilen Fehlern. Version 1 packt einen 60-Bit-Zeitstempel und eine 48-Bit-MAC-Adresse (oder zufällige Pseudo-MAC) in den Wert; sie ist gut für die Sortierung und sehr schlecht für den Datenschutz. Version 3 hasht eine Namensraum-UUID und einen Namen mit MD5, um einen deterministischen Bezeichner zu erzeugen - gleiche Eingaben, gleiche UUID, keine Koordination notwendig. Version 4 ist rein zufällig mit 122 Bits Entropie aus dem kryptographischen RNG des Betriebssystems und ist der Standard für fast alles, das keine Sortierung oder Determinismus benötigt. Version 5 hat dieselbe Form wie v3, verwendet aber SHA-1 statt MD5 und wird für neuen Code über v3 empfohlen. Version 6, eingeführt durch RFC 9562 im Mai 2024, ordnet die Zeitstempel-Bytes von v1 um, sodass die lexikographische Sortierreihenfolge der Generierungsreihenfolge entspricht - dieselben Daten wie v1, nur umgeordnet, um datenbankfreundlich zu sein. Version 7 ist der aufsteigende Star: 48 Bits Unix-Millisekunden gefolgt von 74 Bits Zufälligkeit, was global eindeutige Bezeichner erzeugt, die auch in jedem Datenbank-B-Baum nach Erstellungszeit sortieren, ohne Index-Fragmentierung. Version 8 ist eine benutzerdefinierte Version, die es Anwendungen ermöglicht, ihr eigenes internes Layout zu definieren, während sie die RFC-9562-Varianten-Bits beanspruchen.
Warum du die Version erkennen müsstest
Mehrere reale Situationen erfordern Versionskenntnis. Das Migrieren einer Primärschlüsselspalte von v4 zu v7 bedeutet das Umsortieren historischer Daten; der Erkenner bestätigt, welche Zeilen bereits v7 verwenden und welche noch das alte Zufallsformat haben. Das Debuggen einer Autorisierungsschwachstelle bedeutet zu beweisen, dass ein Zugriffstoken nicht erratbar ist; v1 und v6 geben sowohl die Erstellungszeit als auch den generierenden Host preis, sodass das Finden von beiden in einer Token-Sammlung ein meldenswerter Fund ist. Das Lesen einer Windows-zeitigen Datenbank bedeutet, Microsoft-Varianten-GUIDs zu erkennen und sie bei der Ausgabe in der richtigen Byte-Reihenfolge darzustellen. Ein Request durch Dienste verfolgen bedeutet, den Zeitstempel in einer v1- oder v7-Korrelations-ID zurück in eine Wanduhrzeit umzuwandeln und sie zu verwenden, um Protokolle auf ein enges Fenster zu filtern. Der Erkenner behandelt jeden dieser Fälle in Sekunden, ohne dass du ein Python-REPL öffnen oder sich erinnern müsstest, welche Hex-Stelle die Version enthält.
Häufige Fallstricke beim Umgang mit UUIDs
- Annehmen, dass UUID v4 die einzige Art ist. Eine v1-UUID, die eine MAC-Adresse preisgibt, sieht auf den ersten Blick identisch zu einer v4-UUID aus. Verwende das Versions-Nibble, nicht die String-Länge, um sie zu identifizieren.
- UUIDs als Bearer-Tokens behandeln. v4 hat 122 Bits Zufälligkeit, was ausreicht, um unratbar zu sein; v1 und v6 geben einem Angreifer den Erstellungszeitstempel; v7 enthüllt Erstellungs-Millisekunden. Verwende niemals eine UUID als einzigen Autorisierungsbeweis für eine hochwertige Operation.
- v4 in der Datenbank sortieren. v4 ist zufällig und B-Baum-Einfügungen verursachen Schreib-Amplifikation. Wenn du sowohl globale Eindeutigkeit als auch Index-Lokalität benötigst, wechsle zu v7 - der Erkenner bestätigt, was du hast.
- Microsoft-GUID-Byte-Reihenfolge als RFC 4122 lesen. Microsoft speichert die ersten drei Felder Little-Endian, RFC speichert sie Big-Endian. Dieselbe logische UUID, unterschiedliche Byte-Sequenz im Roh-Speicher. Die String-Form ist identisch, daher meldet der Erkenner die Variante, kann aber nicht sagen, welche Byte-Reihenfolge die Bytes hatten.
- Nil- und Max-UUIDs ignorieren. Beide sind Wächter, keine echten Bezeichner, und das Einfügen von beiden in eine "echte" UUID-Spalte ist eine häufige Quelle von Off-by-One-Fehlern. Der Erkenner markiert beide mit einem Hinweis.
Datenschutz- und Sicherheitshinweise
v1-UUIDs haben insbesondere historisches Gepäck. Sie wurden ursprünglich so spezifiziert, dass sie die MAC-Adresse des generierenden Rechners enthalten, was identifizierende Informationen über Anfragen hinweg preisgibt. Moderne v1-Implementierungen ersetzen typischerweise eine zufällige Pseudo-MAC, aber das kann man aus der UUID allein nicht erkennen - wenn du v1 in benutzerseitigen Daten siehst, solltest du sie als potenziell hostinformationshaltige Daten behandeln. v6 erbt dieselbe Form, aber weil es neu ist, neigen Implementierungen dazu, standardmäßig eine zufällige Knoten-ID zu verwenden. v3 und v5 sind deterministisch, sodass jeder mit denselben Namensraum + Namen-Eingaben die UUID neu generieren kann - verwende sie niemals für unratbare Tokens. v4 und v7 sind die sicheren Standardoptionen für Tokens; v4 wenn du keine Sortierung benötigst, v7 wenn du sie benötigst. Der Erkenner kann dies nicht für dich erzwingen, aber die Version auf jeder nicht vertrauenswürdigen UUID zu lesen ist der erste Schritt, um das Problem zu bemerken.
Wie die Erkennungslogik funktioniert
Alles geschieht in deinem Browser. Der Erkenner kürzt Leerzeichen, entfernt alle führenden oder abschließenden geschweiften oder runden Klammern, konvertiert den String in Kleinbuchstaben und validiert ihn gegen den kanonischen regulären Ausdruck (oder gegen die 32-Hex-bindestrichlose Form, normalisiert zurück zu kanonisch für die Anzeige). Er liest dann das Versions-Nibble durch Indizierung in die Hex-Zeichen und liest das Varianten-Byte durch Parsen der ersten zwei Hex-Zeichen der vierten Gruppe. Für v1 und v6 rekonstruiert er den 60-Bit-Zeitstempel mittels BigInt-Arithmetik und subtrahiert den Gregorianisch-zu-Unix-Offset von 122.192.928.000.000.000 Hundert-Nanosekunden-Einheiten. Für v7 liest er den führenden 48-Bit-Wert als Unix-Millisekunden und rendert ihn direkt. Keine Daten werden über das Netzwerk gesendet, kein Analytics-Ping wird durch das Parsen ausgelöst, und die Seite selbst lädt keine Drittanbieter-Scripts auf dem Parse-Pfad. Um das zu verifizieren, trenne dein Netzwerk nach dem Laden der Seite und benutze sie weiter - der Erkenner funktioniert weiterhin.
Wann man den Erkenner mit anderen Werkzeugen kombiniert
UUID-Parsen passiert selten in Isolation. Nachdem du eine v7-UUID identifiziert und ihren Zeitstempel gelesen hast, hilft dir der Unix-Zeitstempel-Konverter, ihn in eine menschenlesbare Wanduhrzeit über Zeitzonen hinweg umzuwandeln. Der UUID-Generator ist das inverse Werkzeug - präge frische v4-Werte für Tests und Fixtures. Der JSON-Formatierer passt natürlich dazu, wenn du eine UUID aus einer größeren Nutzlast extrahierst und das umgebende Objekt hübsch formatieren möchtest. Der Regex-Tester ist nützlich, wenn du einen eigenen UUID-extrahierenden Ausdruck für Log-Scraping schreiben möchtest. Zusammen decken sie den standardmäßigen "eine UUID sehen, sie verstehen, zugehörigen Kontext nachschlagen"-Arbeitsablauf ab, der bei Incident Response und forensischer Analyse auftaucht.
Häufig gestellte Fragen
Wie erkennt man die Version einer UUID ohne Kontext?
Das 13. hexadezimale Zeichen einer kanonischen UUID (das erste Zeichen der dritten durch Bindestriche getrennten Gruppe) ist das Versions-Nibble. Ist es 1, ist die UUID v1; ist es 4, ist sie v4; ist es 7, ist sie v7, und so weiter. Du musst nicht wissen, wer die UUID erzeugt hat oder warum - die Version ist nach RFC 4122 (jetzt abgelöst durch RFC 9562) in den Wert eingebettet. Das Werkzeug liest dieses einzelne Nibble und meldet den entsprechenden Versionsnamen.
Was ist der Unterschied zwischen Version und Variante?
Version beantwortet "Welcher Generierungsalgorithmus hat diese UUID erzeugt". Variante beantwortet "Welcher UUID-Spezifikation folgt diese UUID überhaupt". Die Variante liegt in den oberen Bits des 17. Hex-Zeichens (Byte 8). Das Bitmuster 10xx ist die moderne Variante nach RFC 4122 / RFC 9562 - diejenige, die fast jede UUID, die man 2025 sieht, verwendet. 0xxx ist die Legacy-NCS-Variante (Network Computing System), 110x ist die Microsoft-GUID-Variante, und 111x ist für zukünftige Verwendung reserviert. Die meisten Werkzeuge kümmern sich nur um Variante 10xx, aber wenn du eine von Windows erzeugte GUID Byte für Byte in einer Datenbank gespeichert siehst, könnte die Microsoft-Variante auftreten.
Kann dieses Werkzeug mir sagen, wann eine v1-UUID erzeugt wurde?
Ja. v1-UUIDs enthalten einen 60-Bit-Zeitstempel in 100-Nanosekunden-Intervallen seit dem 15. Oktober 1582 (dem Beginn des gregorianischen Kalenders - wirklich). Das Werkzeug subtrahiert den Offset zwischen diesem Epoch und dem Unix-Epoch (122.192.928.000.000.000 Hundert-Nanosekunden-Einheiten), dividiert durch 10.000, um Millisekunden zu erhalten, und gibt das Ergebnis als ISO-8601-String aus. v6-UUIDs verwenden denselben Epoch, ordnen aber die Bytes für indexfreundliches Sortieren um; das Werkzeug behandelt beide. v7-UUIDs sind einfacher: die führenden 48 Bits sind einfache Unix-Millisekunden, sodass keine Offset-Arithmetik benötigt wird.
Sind v3- und v5-UUIDs zufallig?
Nein. v3 und v5 sind deterministische namensbasierte UUIDs. Sie hashen eine Namensraum-UUID, die mit einem Namens-String verknüpft ist, mittels MD5 (v3) oder SHA-1 (v5) und kürzen das Ergebnis auf 128 Bits. Wenn du dieselbe v5-UUID zweimal aus demselben Namensraum und Namen erzeugst, erhältst du denselben Wert, was genau der Sinn ist - es ermöglicht verteilten Systemen, sich auf eine ID für eine logische Ressource zu einigen, ohne Koordination. Der Versions-Erkenner kann den Namensraum oder den Namen nicht aus der UUID selbst rekonstruieren; nur derjenige, der sie erzeugt hat, weiss das.
Was ist mit der Nil-UUID und der Max-UUID?
Die Nil-UUID ist 00000000-0000-0000-0000-000000000000 - lauter Nullen. Sie ist in RFC 4122 als Platzhalter für "keine UUID" definiert und hat keine Version oder Variante. Die Max-UUID, ffffffff-ffff-ffff-ffff-ffffffffffff, wurde formal durch RFC 9562 im Jahr 2024 als Wächter für "nach jeder anderen UUID" in Sortierreihenfolgen hinzugefügt. Das Werkzeug markiert beide mit einem Hinweis, damit du keine verwirrende "Version 0"- oder "Version 15"- Lesart bekommst.
Funktioniert dieses Werkzeug mit Microsoft GUIDs in geschweiften Klammern?
Ja. Der Erkenner entfernt ein übereinstimmendes Paar von führenden und abschließenden geschweiften oder runden Klammern vor der Validierung und akzeptiert auch die bindestrichlose 32-Hex-Form ("550e8400e29b41d4a716446655440000"). Unter Windows werden GUIDs herkömmlicherweise in Registry-Exporten und PowerShell- Ausgaben in geschweifte Klammern eingeschlossen; du kannst sie direkt einfügen. Der Erkenner meldet die Microsoft-GUID-Variante (110x), wenn das Byte an Position 8 sie anzeigt, ansonsten meldet er die RFC-4122-Variante wie bei jeder anderen UUID.
Warum sollte meine v4-UUID mit der Ziffer 4 beginnen?
Weil das Versions-Nibble für v4-UUIDs auf 4 festgelegt ist - der Rest der ersten 13 Hex-Zeichen ist zufällig, aber diese bestimmte Stelle ist erzwungen. Deshalb hat jede v4-UUID das Muster xxxxxxxx-xxxx-4xxx-yxxx-... - die "4" kündigt die Version an, und "y" (eine von 8, 9, a oder b) kündigt die RFC-4122-Variante an. Beides sind RFC-Anforderungen, keine Zufälle.
Mehr Developer Tools
AI Token Counter
Count tokens for GPT-4o, Claude, and Gemini models instantly.
Open toolBase64 Encoder & Decoder
Encode UTF-8 text to Base64 online or decode Base64 back to UTF-8 and plain text. Runs in your browser with no upload.
Open toolBulk URL Encode / Decode
Encode or decode many URLs at once. Paste a newline-separated list and the tool processes each line in parallel, preserving order and blank lines.
Open toolchmod Calculator
Calculate and convert Unix file permission modes between octal and symbolic.
Open toolCode Screenshot
Create beautiful code snippet images with customizable themes.
Open toolColor Converter
Convert colors between HEX, RGB, HSL and CMYK formats.
Open tool