GUID Generator: eindeutige Kennungen erstellen
GUID- / UUID-Generator
Erzeuge zufällige UUIDs der Version 4 mit einer kryptografischen Zufallsquelle.
Eine GUID kennzeichnet beispielsweise einen Datensatz, eine Datei oder einen Auftrag, ohne dafür eine fortlaufende Nummer zu benötigen. Mit unserem GUID Generator auf rechenhirn.de lassen sich solche Kennungen erzeugen. Das ist besonders dann praktisch, wenn mehrere Systeme unabhängig voneinander neue Einträge anlegen.
Im Folgenden erkläre ich, wie eine GUID aufgebaut ist, welche Rolle der Zufall spielt und worauf es bei der Verwendung ankommt.
Was bedeutet GUID?
GUID steht für Globally Unique Identifier, also eine global eindeutige Kennung. Eng damit verbunden ist der Begriff UUID für Universally Unique Identifier. In der üblichen Textdarstellung werden beide Bezeichnungen häufig gleichbedeutend verwendet; bei bestimmten binären Darstellungen können Unterschiede in der Byte-Reihenfolge relevant sein.
Eine solche Kennung umfasst 128 Bit beziehungsweise 16 Byte. Die typische Schreibweise enthält 32 hexadezimale Zeichen und vier Bindestriche:
550e8400-e29b-41d4-a716-446655440000
Die fünf Zeichengruppen haben die Längen 8–4–4–4–12. Einschließlich der Bindestriche ergibt das 36 Zeichen. Verwendet werden die Ziffern 0 bis 9 und die Buchstaben a bis f; Groß- und Kleinschreibung ändern den Wert nicht.
Wie zufällige GUIDs entstehen
Bei einer UUID der Version 4 beruhen 122 Bit auf Zufallswerten. Die übrigen sechs Bit kennzeichnen Version und Variante. Im Beispiel oben zeigt die erste Ziffer der dritten Gruppe, die 4, die Version an. Die vierte Gruppe beginnt bei dieser Variante mit 8, 9, a oder b.
Wichtig: „Eindeutig“ bedeutet bei zufallsbasierten GUIDs nicht mathematisch garantiert kollisionsfrei. Bei korrekt erzeugten Zufallswerten ist eine doppelte Vergabe jedoch äußerst unwahrscheinlich.
Der mögliche Wertevorrat einer UUID v4 beträgt:
2122 ≈ 5,32 × 1036
Entscheidend ist eine geeignete Zufallsquelle. Mein Hinweis für eigene Implementierungen: Einen bewährten UUID-Generator verwenden, statt Kennungen aus Uhrzeit und einfachen Zufallszahlen selbst zusammenzusetzen.
Speicherbedarf mit Zahlenbeispielen
Eine GUID benötigt binär 16 Byte. Als Text mit Bindestrichen sind es bei ASCII oder UTF-8 genau 36 Byte. Die Tabelle zeigt den reinen Datenumfang ohne Datenbank-, Index- oder Verwaltungsaufwand.
| Anzahl | Binär, 16 Byte je GUID | Text, 36 Byte je GUID |
|---|---|---|
| 1 | 16 Byte | 36 Byte |
| 1.000 | 16.000 Byte | 36.000 Byte |
| 1.000.000 | 16.000.000 Byte | 36.000.000 Byte |
Rechenbeispiel: Eine Million Kennungen benötigen als Text 1.000.000 × 36 = 36.000.000 Byte, binär dagegen 16.000.000 Byte. Der Unterschied beträgt 20.000.000 Byte, also 20 MB in dezimaler Rechnung.
GUID Generator sinnvoll einsetzen
- Datenbanken: Datensätze können unabhängig voneinander Kennungen erhalten. Eine Eindeutigkeitsbedingung bleibt sinnvoll.
- Schnittstellen: IDs verknüpfen Objekte zwischen Anwendungen.
- Testdaten: Neu erzeugte GUIDs ersetzen wiederholt kopierte Beispielkennungen.
Eine GUID ist allerdings kein Passwort und kein Zugriffsrecht. Auch eine schwer erratbare ID ersetzt keine Berechtigungsprüfung. Wer lediglich eine Kennung benötigt, kann unseren Rechner nutzen; wer ein Sicherheitstoken braucht, sollte ein ausdrücklich dafür vorgesehenes Verfahren wählen.