UUID

Versionen

Versionen

V1 - V7

UUIDs (Universally Unique Identifiers) haben mehrere Versionen (v1–v7), die sich vor allem darin unterscheiden, wie sie erzeugt werden. Jede Version hat ihren eigenen Zweck und Kompromisse (z. B. zwischen Zufälligkeit, Nachvollziehbarkeit und Sortierbarkeit).

Hier ist eine verständliche Übersicht:


🔹 UUID v1 – Zeit + MAC-Adresse

Prinzip: basiert auf Zeitstempel + Gerätekennung

👉 Heute oft gemieden wegen Privacy


🔹 UUID v2 – DCE Security (selten genutzt)

Prinzip: wie v1, aber mit zusätzlicher Benutzer-/Gruppen-ID

👉 Praktisch irrelevant in modernen Systemen


🔹 UUID v3 – Name-basiert (MD5)

Prinzip: Hash aus Name + Namespace

👉 Wird selten noch neu eingesetzt


🔹 UUID v4 – Zufällig

Prinzip: komplett zufällige Bits

👉 Am häufigsten verwendet


🔹 UUID v5 – Name-basiert (SHA-1)

Prinzip: wie v3, aber mit SHA-1

👉 Wird noch genutzt, aber nicht ideal für neue Systeme


🔹 UUID v6 – Zeitbasiert (verbessertes v1)

Prinzip: wie v1, aber besser sortierbar

👉 Moderne Alternative zu v1


🔹 UUID v7 – Zeit + Zufall (modern)

Prinzip: Unix-Zeit + Zufallsbits

👉 Aktuell die empfohlene moderne Wahl


🧠 Kurzvergleich

Version Basis Sortierbar Deterministisch Typische Nutzung
v1 Zeit + MAC Legacy
v2 v1 + UID Kaum genutzt
v3 MD5 Hash Reproduzierbar
v4 Zufall Standard
v5 SHA-1 Hash Reproduzierbar
v6 Zeit (neu sortiert) DB-optimiert
v7 Zeit + Zufall Modern / empfohlen

✅ Empfehlung (Stand heute)

 

Aufbau

Aufbau

Struktur einer UUID

Grundstruktur einer UUID

Eine UUID besteht immer aus 128 Bits = 16 Bytes.

Typische Darstellung:

123e4567-e89b-12d3-a456-426614174000

Aufgeteilt:

8-4-4-4-12 Hex-Zeichen

Das entspricht:


Bit-Level Aufbau (allgemein)

Eine UUID hat zwei wichtige feste Bestandteile:

1. 🔢 Version (4 Bits)

Beispiel:

xxxxxxxx-xxxx-1xxx-....
             ↑
           Version

2. 🧭 Variant (2–3 Bits)

Typische Werte:

Beispiel:

xxxxxxxx-xxxx-xxxx-8xxx-....
                 ↑
              Variant

📦 Beispiel analysiert

UUID:

123e4567-e89b-12d3-a456-426614174000

👉 Zerlegt:


🧩 Unterschied je nach Version

Jetzt wird’s interessant:
Der Inhalt der 128 Bits hängt stark von der Version ab.


🔹 UUID v1 (Zeitbasiert)

Aufbau:

time_low (32)
time_mid (16)
time_high + version (16)
variant + clock_seq (16)
node (48)

Enthält:

👉 Deshalb:


🔹 UUID v4 (Random)

Aufbau:

random (122 bits)
+ version (4 bits)
+ variant (2-3 bits)

👉 Fast alles ist Zufall
Nur:

sind fest codiert


🔹 UUID v7 (modern 🔥)

Aufbau (vereinfacht):

unix_ts_ms (48 bits)
version (4 bits)
rand (12 bits)
variant (2-3 bits)
rand (62 bits)

👉 Mischung aus:

Vorteil:


📊 Visuelle Darstellung (v7 Beispiel)

|------ Zeit (48) ------|ver|--- rand ---|var|-------- rand --------|

🧠 Wichtige Erkenntnisse


⚠️ Kleine Stolperfallen