In diesem Artikel
Was ist eine UUID?
Eine UUID (Universally Unique Identifier) ist ein 128-Bit-Wert, der Informationen in Computersystemen eindeutig identifiziert. Als 32 hexadezimale Ziffern in fünf durch Bindestriche getrennten Gruppen dargestellt, sieht eine UUID so aus: 550e8400-e29b-41d4-a716-446655440000.
UUIDs sind so konzipiert, dass sie weltweit eindeutig sind, ohne dass eine zentrale Registrierungsstelle erforderlich ist. Das macht sie ideal für verteilte Systeme, in denen mehrere Knoten unabhängig voneinander Bezeichner erzeugen müssen, die niemals kollidieren.
UUID-Versionen erklärt
Der UUID-Standard definiert mehrere Versionen, jede mit einer anderen Erzeugungsmethode. Die Versionsnummer steht an der 13. Stelle (die erste Ziffer der dritten Gruppe).
- Version 1 (v1) — zeitbasiert: kombiniert den aktuellen Zeitstempel mit der MAC-Adresse der erzeugenden Maschine. Garantiert Eindeutigkeit, gibt jedoch Hardware-Informationen preis
- Version 3 (v3) — namensbasiert mit MD5: erzeugt eine deterministische UUID, indem ein Namensraum und ein Name mit MD5 gehasht werden. Dieselbe Eingabe ergibt stets dieselbe UUID
- Version 4 (v4) — zufallsbasiert: die am weitesten verbreitete Version. Alle Bits außer den Versions- und Variantenfeldern werden zufällig erzeugt und bieten etwa 5,3 x 10 hoch 36 mögliche Werte
- Version 5 (v5) — namensbasiert mit SHA-1: wie v3, verwendet jedoch SHA-1 zum Hashen. Für neue Implementierungen gegenüber v3 bevorzugt
- Version 7 (v7) — zeitstempelsortiert und zufällig: ein neueres Format, das einen Unix-Zeitstempel mit zufälligen Bits kombiniert, sodass UUIDs nach Erstellungszeit sortierbar werden
Kostenlos testen – keine Registrierung erforderlich
UUID validieren →So funktioniert die UUID-Validierung
Die Validierung einer UUID prüft sowohl ihr Format als auch strukturelle Regeln. Eine gültige UUID muss dem kanonischen Hexadezimalmuster 8-4-4-4-12 entsprechen und versionsspezifische Vorgaben erfüllen.
- Formatprüfung — die Zeichenkette muss genau 32 hexadezimale Zeichen enthalten, angeordnet in fünf Gruppen, getrennt durch vier Bindestriche
- Versionsprüfung — das 13. Zeichen muss eine gültige Versionsnummer sein (1, 2, 3, 4, 5, 6, 7 oder 8)
- Variantenprüfung — das 17. Zeichen (erste Hex-Ziffer der vierten Gruppe) muss die Variante nach RFC 4122 anzeigen (8, 9, a oder b)
Häufige Anwendungsfälle
UUIDs sind in vielen Bereichen der modernen Softwareentwicklung die Standardwahl für Bezeichner.
- Datenbank-Primärschlüssel — mit UUIDs erzeugen Sie Schlüssel clientseitig, ohne einen Umweg über die Datenbank, was verteilte Einfügevorgänge nahtlos macht
- API-Ressourcenbezeichner — das Offenlegen von UUIDs statt fortlaufender Ganzzahlen verhindert Enumerationsangriffe und verbirgt Geschäftskennzahlen
- Sitzungs- und Korrelations-IDs — UUIDs verfolgen Anfragen über Microservices hinweg und ermöglichen so das Debugging in verteilten Systemen
- Datei- und Objektbenennung — Cloud-Speichersysteme verwenden UUIDs, um Namenskollisionen zu vermeiden, wenn mehrere Nutzer gleichzeitig Dateien hochladen
Bewährte Vorgehensweisen
Die richtige UUID-Version zu wählen und sie korrekt zu handhaben kann subtile Fehler und Leistungsprobleme in Ihren Anwendungen verhindern.
- Verwenden Sie v4 für zufällige Bezeichner mit allgemeinem Verwendungszweck — es ist die gängigste Wahl und hat keine externen Abhängigkeiten
- Verwenden Sie v7, wenn Sie zeitlich sortierbare Bezeichner benötigen — v7-UUIDs sortieren chronologisch, was die Leistung von Datenbankindizes verbessert
- Speichern Sie UUIDs als 16-Byte-Binärwert in Datenbanken statt als 36-Zeichen-String — das spart Speicherplatz und beschleunigt Vergleiche
- Validieren Sie UUIDs aus externen Eingaben stets — gehen Sie niemals davon aus, dass von Nutzern bereitgestellte Zeichenketten wohlgeformt sind
Häufig gestellte Fragen
Können zwei UUIDs jemals identisch sein?
Theoretisch ist das möglich, doch die Wahrscheinlichkeit einer Kollision bei v4-UUIDs ist verschwindend gering. Sie müssten etwa 2,7 Trillionen UUIDs erzeugen, um mit 50 Prozent Wahrscheinlichkeit auch nur eine einzige Kollision zu erhalten.
Wird bei einer UUID zwischen Groß- und Kleinschreibung unterschieden?
Nein. Der Standard RFC 4122 legt fest, dass UUIDs in Kleinbuchstaben ausgegeben werden sollten, Implementierungen müssen jedoch groß- und kleingeschriebene Hexadezimalzeichen als gleichwertig akzeptieren.
Sollte ich UUID oder ULID verwenden?
ULIDs sind 128-Bit-Bezeichner, die lexikografisch sortierbar und in Crockford-Base32 kodiert sind. Wenn Sie Sortierbarkeit ohne die Komplexität von UUID v7 benötigen, sind ULIDs eine gute Alternative. Kommt es auf die Kompatibilität mit bestehenden Systemen an, bleiben Sie bei UUIDs.