UUID Decoder

Decode and inspect UUID structure, version, and embedded data

Beispiel ausprobieren

UUID-Eingabe

UUID oben einfügen, um sie zu untersuchen

UUID-Struktur

Eine UUID (Universally Unique Identifier) ist ein 128-Bit-Wert, dargestellt als 32 hexadezimale Ziffern, die durch Bindestriche in fünf Gruppen aufgeteilt sind:

Format
xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx
xxxxxxxx (8)8 Hex-Ziffern — 32 Bits
xxxx (4)4 Hex-Ziffern — 16 Bits
Mxxx (4)4 Hex-Ziffern — 16 Bits. Die erste Ziffer M kodiert die UUID-Version (1–8).
Nxxx (4)4 Hex-Ziffern — 16 Bits. Die erste Ziffer N kodiert die UUID-Variante (RFC 4122, NCS, Microsoft oder reserviert).
xxxxxxxxxxxx (12)12 Hex-Ziffern — 48 Bits

Die Version und Variante sind die einzigen zwei Felder, die in jeder UUID garantiert vorhanden sind. Alle anderen Felder hängen von der Version ab.

Das Versionsfeld

Das Versions-Nibble ist die erste Hex-Ziffer der dritten Gruppe (Position 14 im vollständigen String). Es identifiziert, welche UUID-Version zur Generierung des Bezeichners verwendet wurde.

JavaScript
const hex = uuid.replace(/-/g, '')
const version = parseInt(hex[12], 16)  // single hex digit → 1, 2, 3, 4, 5, 6, 7, or 8

Version 7 (UUID v7) ist die neueste weit verbreitete Version, eingeführt in RFC 9562 (2024). Sie kodiert einen Unix-Millisekunden-Zeitstempel in den hohen Bits für Sortierbarkeit.

Das Variantenfeld

Die Variante ist in den hohen Bits des ersten Bytes der vierten Gruppe kodiert. Sie identifiziert die Layout- und Byte-Reihenfolge-Konventionen, die von der UUID verwendet werden.

Hohe BitsErste Hex-ZiffernbereichVarianteBeschreibung
0xxx xxxx0x00–0x7FNCS-AbwärtskompatibilitätLegacy-Network-Computing-System (NCS)-UUIDs. Reserviert für Abwärtskompatibilität.
10xx xxxx0x80–0xBFRFC 4122 / RFC 9562Die Standard-RFC 4122 / RFC 9562-UUID-Variante. Wird von allen modernen UUID-Versionen (v1–v8) verwendet.
110x xxxx0xC0–0xDFMicrosoft-AbwärtskompatibilitätLegacy-Microsoft-COM/DCOM-GUIDs mit einer anderen Byte-Reihenfolge. Noch in Windows-COM-Komponenten angetroffen.
111x xxxx0xE0–0xFFReserviertReserviert für zukünftige Definition. Von keiner aktuellen UUID-Version verwendet.

In der Praxis verwenden nahezu alle UUIDs, denen Sie begegnen, die RFC 4122 / RFC 9562-Variante (Bitmuster 10xx xxxx, erstes Byte der vierten Gruppe im Bereich 0x80–0xBF). Die NCS-, Microsoft COM- und Reserved-Varianten sind Legacy-Formate, die in modernen Systemen selten vorkommen.

UUID-Versionen Referenz

RFC 4122 definierte die Versionen 1–5. RFC 9562 (2024) fügte die Versionen 6, 7 und 8 hinzu:

VersionNameStandardBeschreibung
v1ZeitbasiertRFC 4122Zeitstempel (Gregorianische Epoche, 100ns-Präzision) + MAC-Adresse. Sequentiell pro Host, gibt aber Host-Identität preis.
v2DCE SecurityRFC 4122Basiert auf UUID v1, wobei das time_low-Feld durch eine POSIX UID/GID ersetzt wird. Selten außerhalb von Legacy-DCE/RPC-Systemen verwendet.
v3Namensbasiert MD5RFC 4122Deterministisch: MD5-Hash einer Namespace-UUID + Namen-String. Gleiche Eingaben ergeben immer dieselbe UUID. v5 bevorzugen.
v4ZufälligRFC 4122122 Bits kryptografisch sicherer Zufälligkeit. Die häufigste Allzweck-UUID-Version.
v5Namensbasiert SHA-1RFC 4122Wie v3, aber mit SHA-1. Kollisionsresistenter als MD5. Gegenüber v3 für neue namensbasierte UUIDs bevorzugt.
v6Umgeordnete ZeitRFC 9562Ordnet die UUID v1-Zeitstempelfelder um, sodass die UUID chronologisch sortierbar ist. Definiert in RFC 9562.
v7Unix-ZeitRFC 956248-Bit-Unix-Millisekunden-Zeitstempel in hohen Bits + Zufallsdaten. Sortierbar und B-Tree-Index-freundlich. Für neue zeitgeordnete IDs bevorzugt.
v8BenutzerdefiniertRFC 9562Freiform: Alle Bits außer Version und Variante sind anwendungsdefiniert. Kein Generierungsalgorithmus ist angegeben.

UUID v1-Zeitstempel dekodieren

UUID v1 enthält einen 60-Bit-Gregorianischen Zeitstempel (100-Nanosekunden-Intervalle seit dem 15. Oktober 1582), der über drei Felder verteilt ist: time_low (Bits 0–31), time_mid (Bits 32–47) und time_hi (Bits 48–59). Dieses Tool setzt sie zusammen und konvertiert sie in ein standardmäßiges UTC-Datum.

JavaScript
// UUID v1: 6ba7b810-9dad-11d1-80b4-00c04fd430c8
//           ^^^^^^^^ ^^^^ ^^^^ ^^^^^ ^^^^^^^^^^^^
//           time-low  mid  hi  clk   node (MAC)
//                          ^
//                          version nibble (1)

const hex = '6ba7b8109dad11d180b400c04fd430c8'

const tLow = parseInt(hex.slice(0, 8),  16)  // 0x6ba7b810
const tMid = parseInt(hex.slice(8, 12), 16)  // 0x9dad
const tHi  = parseInt(hex.slice(13, 16), 16) // 0x1d1 (skip version nibble at index 12)

// Reconstruct 60-bit timestamp (100-ns intervals since Oct 15, 1582)
const t = (BigInt(tHi) << 48n) | (BigInt(tMid) << 32n) | BigInt(tLow)

// Subtract Gregorian offset (Oct 15, 1582 → Jan 1, 1970 in 100-ns units)
const GREGORIAN_OFFSET = 122192928000000000n
const unixMs = (t - GREGORIAN_OFFSET) / 10000n

console.log(new Date(Number(unixMs)).toISOString())
// → 1998-02-04T22:13:53.578Z
Note:Das Taktsequenzfeld (14 Bits) verhindert Duplikate, wenn die Uhr rückwärts läuft. Das Knotenfeld (48 Bits) ist typischerweise die MAC-Adresse des generierenden Hosts.

UUID v1 sollte als sensibel behandelt werden: Die eingebettete MAC-Adresse und der präzise Zeitstempel können sowohl die generierende Maschine als auch den Zeitpunkt der Generierung identifizieren.

UUID v7-Zeitstempel dekodieren

UUID v7 enthält einen 48-Bit-Unix-Millisekunden-Zeitstempel in den ersten 48 Bits (erste Gruppe + erste 4 Ziffern der zweiten Gruppe). Dieses Tool liest diese Bits und konvertiert sie in ein UTC-Datum mit Millisekunden-Präzision.

JavaScript
// UUID v7: 018e4bc8-1000-7000-8000-000000000001
//           ^^^^^^^^^^^^
//           48-bit Unix ms timestamp

const hex = '018e4bc8100070008000000000000001'

// First 48 bits (12 hex chars) = Unix timestamp in milliseconds
const ms = parseInt(hex.slice(0, 12), 16)  // 0x018e4bc81000

console.log(new Date(ms).toISOString())
// → 2024-03-11T…Z

// Everything after byte 6 is random (except version/variant bits)

Im Gegensatz zu UUID v1 verwendet der UUID v7-Zeitstempel die vertraute Unix-Epoche (1. Januar 1970) und enthält keine Host-Informationen. Die restlichen 74 Bits sind zufällig.

Wie dieses Tool UUID-Version und -Variante erkennt

Der Decoder liest Position 14 (Versions-Nibble) und Position 19 (Varianten-Nibble) des kanonischen UUID-Strings. Kein externer Zustand oder Kontext ist erforderlich — alle Informationen sind im UUID-String selbst enthalten.

JavaScript
// Detect UUID version from the 13th hex character (index 12)
function uuidVersion(uuid) {
  const clean = uuid.replace(/-/g, '')
  return parseInt(clean[12], 16)
}

uuidVersion('550e8400-e29b-41d4-a716-446655440000') // → 4
uuidVersion('018e4bc8-1000-7000-8000-000000000001') // → 7
uuidVersion('6ba7b810-9dad-11d1-80b4-00c04fd430c8') // → 1

// Detect variant from the 17th hex character (index 16, first char of 4th group)
function uuidVariant(uuid) {
  const clean = uuid.replace(/-/g, '')
  const b = parseInt(clean[16], 16)
  if ((b & 0x8) === 0)      return 'NCS'
  if ((b & 0xC) === 0x8)    return 'RFC 4122'
  if ((b & 0xE) === 0xC)    return 'Microsoft'
  return 'Reserved'
}

Spezielle UUIDs

Nil UUID

Die Nil-UUID 00000000-0000-0000-0000-000000000000 sind lauter Nullen. Sie ist durch RFC 4122 als Sentinel-Wert definiert, der 'keine UUID' bedeutet — analog zu null. Sie ist keine gültig generierte UUID.

Max UUID

Die Max-UUID ffffffff-ffff-ffff-ffff-ffffffffffff sind lauter Einsen (0xFF in jedem Byte). In RFC 9562 definiert, ist sie das Komplement der Nil-UUID und dient als maximaler Sentinel-Wert.

Häufig gestellte Fragen

Wie erkenne ich, welche Version eine UUID hat?
Schauen Sie auf Position 14 im kanonischen UUID-String (das erste Zeichen der dritten durch Bindestriche getrennten Gruppe). Diese einzelne Hex-Ziffer ist die Versionsnummer: 1, 2, 3, 4, 5, 6, 7 oder 8. Fügen Sie die UUID in dieses Tool ein und es dekodiert die Version für Sie.
Kann ich eine UUID dekodieren, um die ursprünglichen Daten wiederherzustellen?
Das hängt von der Version ab. UUID v1 und v7 enthalten einen Zeitstempel, der vollständig wiederhergestellt werden kann. UUID v1 enthält auch die MAC-Adresse. UUID v3 und v5 sind Einweg-Hashes — Sie können den ursprünglichen Namen nicht aus der UUID wiederherstellen. UUID v4 ist rein zufällig — es gibt nichts wiederherzustellen.
Was bedeutet 'Variante' in einer UUID?
Das Variantenfeld identifiziert das Byte-Layout und die Interpretationskonvention der UUID. Fast alle UUIDs, denen Sie begegnen, werden die RFC 4122-Variante haben (hohe Bits 10), kodiert als Hex-Ziffern 8, 9, a oder b an Position 19. Andere Varianten (NCS, Microsoft) sind Legacy-Formate aus den 1990er Jahren.
Warum sehen einige UUIDs anders aus als andere?
Der visuelle Unterschied liegt im Versions-Nibble (Position 14) und dem Varianten-Nibble (Position 19). Zum Beispiel hat UUID v4 immer eine 4 an Position 14, während UUID v7 immer eine 7 hat. Innerhalb dieser Einschränkungen sind die verbleibenden Ziffern je nach Version zufällig oder zeitstempelbasiert.
Ist die Nil-UUID dasselbe wie eine leere UUID?
Konzeptionell ja — die Nil-UUID (lauter Nullen) wird verwendet, um das Fehlen einer UUID darzustellen, ähnlich wie null. Es ist keine zufällig generierte UUID und sollte nicht als echte Kennung gespeichert werden. Einige Systeme verwenden sie als Standard- oder Platzhalterwert.
Kann eine UUID ungültig sein?
Eine UUID kann syntaktisch gültig (korrektes Format) aber semantisch ungewöhnlich sein — zum Beispiel wenn sie ein Versions-Nibble von 0 oder eine Variante von 11x (reserviert) hat. Die Nil-UUID und die Max-UUID sind syntaktisch gültig, aber Sentinel-Werte. Dieses Tool zeigt, welche Versions- und Varianten-Nibbles vorhanden sind, und markiert unerkannte Versionen.
Was ist der Unterschied zwischen einer UUID und einem GUID?
GUID (Globally Unique Identifier) ist Microsofts Name für dasselbe Konzept. GUIDs folgen demselben RFC 4122 128-Bit-Format. Der einzige praktische Unterschied ist, dass Legacy-Microsoft-GUIDs möglicherweise die Microsoft-Variante (hohe Bits 110) anstelle der RFC 4122-Variante verwenden — das betrifft die Byte-Reihenfolge in der binären Darstellung. Die Textdarstellung ist identisch.