Wofür UUIDs gedacht sind
Eine UUID (Universally Unique Identifier), in Microsoft-Umgebungen auch GUID genannt, ist ein 128-Bit-Wert in einer standardisierten Textform wie:
550e8400-e29b-41d4-a716-446655440000
Systeme nutzen UUIDs, wenn Kennungen extrem selten kollidieren sollen — ohne zentrale Vergabestelle: Primärschlüssel in verteilten Diensten, Nachrichten-IDs, Upload-Handles und Ressourcennamen in APIs. Eindeutigkeit ist probabilistisch (oder aus Namen abgeleitet), nicht jedes Mal durch eine globale Registry-Abfrage bewiesen.
Erzeugen Sie ein Beispiel mit UUID erzeugen und prüfen Sie Format sowie Versionsfelder mit UUID prüfen.
Subtools in dieser Familie
- UUID erzeugen — erstellt UUIDs in den Versionen 1, 3, 4 oder 5, mit optionalen Namespace- und Name-Eingaben, wo diese Versionen sie brauchen.
- UUID prüfen — prüft, ob eine Zeichenkette dem UUID-Layout entspricht, und meldet Gültigkeitsaspekte für die Versionen 1 bis 5.
Erzeugung und Validierung ergänzen sich: minten Sie IDs in der Version, die Ihr Schema erwartet, und validieren Sie Benutzer- oder Importstrings, bevor Sie sie als Fremd- oder Cache-Schlüssel akzeptieren.
Versionen, denen Sie wirklich begegnen
Version 4 (zufällig). Die häufigste Wahl für neue Anwendungs-IDs. Die meisten Bits stammen aus einem CSPRNG; Versions- und Variantenbits sind laut RFC 4122 fest. Kollisionen sind bei praxisnahen Mengen vernachlässigbar, wenn der Generator solide ist.
Version 1 (zeitbasiert). Enthält Zeitstempel und Knotenkennung (historisch eine MAC-Adresse). Nützlich für grobe Zeitordnung, kann aber Erstellungszeit und Maschinenidentität preisgeben — datenschutzsensible Kontexte bevorzugen oft v4 oder neuere Schemata.
Version 3 (MD5 namensbasiert) und Version 5 (SHA-1 namensbasiert). Leiten eine UUID aus einer Namespace-UUID plus einem Name-String ab. Derselbe Namespace+Name ergibt immer dieselbe UUID — praktisch für stabile IDs aus URLs oder Benutzernamen ohne Lookup-Tabelle. Für neue Entwürfe ist v5 gegenüber v3 vorzuziehen, weil die Ableitung SHA-1 statt MD5 nutzt.
Weitere Versionen und Nachfolge-Vorschläge (etwa zeit-sortierbares UUIDv7 in neueren RFCs) tauchen in modernen Stacks auf; wenn Ihre Plattform eine bestimmte Version dokumentiert, halten Sie sich daran statt Versionen zu mischen.
Textformat und Variantenbits
Der kanonische Text verwendet fünf Hex-Gruppen 8-4-4-4-12. Parser sollten Groß- und Kleinbuchstaben-Hex akzeptieren. Das Versions-Nibble sitzt in der dritten Gruppe; die Variantenbits in der vierten. Eine Prüfung, die nur „sieht aus wie Hex mit Bindestrichen“ prüft, ist schwächer als eine, die auch Versions-/Variantenkonsistenz für den behaupteten Typ prüft.
Manche APIs akzeptieren URN-Form (urn:uuid:…) oder geschweifte GUIDs {…}. Vor dem Vergleich normalisieren. Binärspeicher sind 16 Bytes; die Textform dient Menschen und JSON.
IDs klug wählen
Wann UUIDs helfen. Merge-freundliche Primärschlüssel, Offline-Vergabe von IDs, Verbergen sequenzieller Zeilenzähler vor Clients.
Wann sie schaden. Sehr große zufällige Primärschlüssel können B-Tree-Indizes stärker fragmentieren als sequenzielle Ganzzahlen — messen Sie für Ihre Datenbank. Logging und Support werden schwerer, wenn jede ID undurchsichtig ist; kombinieren Sie bei Bedarf menschenlesbare Fallnummern.
Stabilität. Bei namensbasierten v3/v5 dokumentieren Sie die Namespace-UUID, auf die Ihre Organisation standardisiert (DNS, URL, OID oder eine eigene Wurzel). Ein geänderter Namespace erzeugt still eine andere ID für denselben Namen.
Sicherheitshinweise
UUIDv4-Werte sind Kennungen, keine Authentifizierungsgeheimnisse. Ein ungelistetes v4-ID zu erraten ist schwer — behandeln Sie das nicht als Autorisierung; erzwingen Sie immer Zugriffskontrolle. Vermeiden Sie v1, wenn MAC-abgeleitete Knotenbits Hardware-Identität in öffentlichen Dokumenten verraten würden. Betten Sie keine Passwörter oder PANs in Name-Strings für v3/v5 ein.
Häufige Fehler
- v4 erzeugen, aber nur die erste Hälfte „zum Platzsparen“ speichern und damit Eindeutigkeitsgarantien zerstören.
- Groß-/Kleinschreibung-sensitive Stringvergleiche zwischen Systemen mit unterschiedlicher Normalisierung.
- Die Nil-UUID (
00000000-0000-0000-0000-000000000000) als echten Entitätsschlüssel nutzen. - Annehmen, dass Formatvalidierung bedeutet, die ID existiere in Ihrer Datenbank.
- Mehrere Generatoren mit unterschiedlichen Versionsrichtlinien für dieselbe Spalte mischen.
Grenzen und Umgebung
Diese Tools helfen Ihnen, RFC-artige UUIDs im Browser für Entwicklung und Lernen zu erzeugen und zu prüfen. Sie vergeben keine IDs aus Produktionssequenzen und garantieren keine globale Eindeutigkeit bei defekten RNGs.
Zusammenfassung
UUIDs liefern 128-Bit-Kennungen in standardisierter Hex-Form, mit Versionen für zufällige, zeitbasierte und namensbasierte Erzeugung. Dieser Hub kombiniert einen Mehrversions-Generator mit einem Validator, damit Sie schema-konforme IDs erzeugen und fehlerhafte Strings früh ablehnen können. Bevorzugen Sie v4 für den allgemeinen Einsatz, v5 für stabile namensabgeleitete IDs, und erzwingen Sie Autorisierung stets getrennt von der Undurchsichtigkeit der Kennung.