Was ist UUID v1?
UUID Version 1 ist ein zeitbasiertes 128-Bit-Kennzeichen (36-Zeichen-String) laut RFC 4122. Es kombiniert:
- Timestamp: 60 Bit (100-Nanosekunden-Präzision seit dem 15.10.1582)
- Clock Sequence: 14 Bit Zähler für Uhrenanpassungen
- Node ID: 48 Bit (typischerweise MAC-Adresse)
Beispiel: 2ed6657d-e927-11eb-9a03-0242ac130003
Funktionsweise von UUID v1
- Aktuellen Timestamp berechnen (100 ns-Intervalle seit 15.10.1582)
- 14-Bit Clock Sequence holen/inkrementieren (für Einzigartigkeit bei Uhrensprung)
- 48-Bit Node ID erhalten (meist MAC-Adresse)
- Versionsbits (0001) und Variantenbits (10) setzen
- Als 32 hexadezimale Ziffern mit Bindestrichen zusammenfügen: 8-4-4-4-12
Vorteile & Nachteile
Vorteile | Zu beachten |
---|---|
|
|
Struktur von UUID v1
Bits | Inhalt |
---|---|
0-31 | Low 32 Bits des Timestamps |
32-47 | Mittlere 16 Bits des Timestamps |
48-59 | Hohe 12 Bits des Timestamps |
60-63 | Version (0001 für v1) |
64-65 | Variante (10 gemäß RFC4122) |
66-79 | Clock Sequence (14 Bits) |
80-127 | Node ID (48 Bits) |
UUID v1 vs. andere Versionen
Version | Basis | Anwendungsfall | Privatsphäre |
---|---|---|---|
UUID v1 | Zeit + MAC | Sortierbare IDs | ⚠️ MAC offengelegt |
UUID v3 | Namespace + MD5 | Deterministische IDs | ✅ Privat |
UUID v4 | Zufall | Sichere zufällige IDs | ✅ Privat |
UUID v5 | Namespace + SHA-1 | Deterministische IDs | ✅ Privat |
UUID v6 | Zeit (neu geordnet) | Sortierbare IDs | ⚠️ MAC offengelegt |
UUID v7 | Zeit + Zufall | Sortierbare IDs | ✅ Privat |
Häufige Anwendungsfälle
- Datenbankschlüssel: Verteilte Datenbanken
- Audit-Logs: Zeitlich geordnete Nachverfolgung
- Transaktions-IDs: Geschäftsprozesse
- Sitzungsverfolgung: Webanwendungen
- Content-Adressierung: CMS
- IoT-Nachrichten: Gerätekommunikation
Häufig gestellte Fragen
Ist UUID v1 kryptographisch sicher?
Nein. UUID v1 ist vorhersehbar, wenn Timestamp und MAC bekannt sind. Für Sicherheit verwenden Sie UUID v4.
Können UUID v1-Werte kollidieren?
Kollisionen sind praktisch äußerst unwahrscheinlich dank Timestamp-Präzision, Clock-Sequence-Zählern und Node-IDs.
Kann ich die Erstellungszeit aus einem UUID v1 extrahieren?
Ja. Der Timestamp-Teil lässt sich mit den meisten UUID-Bibliotheken extrahieren.
Sind UUID v1 nach Erstellungszeit sortierbar?
Ja, aber man braucht spezielle Sortierfunktionen. Einfache String-Vergleiche funktionieren nicht.
Gibt UUID v1 meine MAC bekannt?
Standardmäßig ja. Die meisten Implementierungen nutzen die MAC für die Node-ID. Privacy-Fokusierte nutzen zufällige Node-IDs.