Extras
UUID und zufällige Tokens
UUID v4, Hex, Base64 und PIN – einzeln oder in Hunderten.
122 Bit: 128 zufällige Bit minus 6 Bit für Version und Variante.
Was eine UUID v4 ist
Eine UUID (universally unique identifier) ist eine 128-Bit-Kennung, die mit sechsunddreißig Zeichen geschrieben wird: acht Gruppen mit Bindestrichen, zum Beispiel
3f2a9c1e-7b4d-4f6a-9e21-8c5d0b7a4e13. Die vierte Version des Standards bedeutet, dass fast alle Bit darin zufällig sind.
Von den 128 Bit sind sechs reserviert: vier Bit gehen an die Versionsnummer (in der dritten Gruppe steht immer 4), zwei an die Variante nach RFC 4122 (die vierte Gruppe beginnt mit 8, 9, a oder b). Es bleiben 122 zufällige Bit – das sind etwa 5,3 × 10³⁶ Varianten.
Die wichtigste Eigenschaft einer UUID: Sie lässt sich überall erzeugen, ohne sich mit einem Server abzustimmen. Zwei unabhängige Anwendungen erzeugen fast nie dieselbe Kennung, deshalb lässt sich eine UUID schon im Client erzeugen, bevor sie in die Datenbank geschrieben wird.
Wo UUIDs und Tokens eingesetzt werden
- Primärschlüssel für Tabellen, wenn Auto-Inkrement stört oder die Größe der Datenbank verrät;
- Request-IDs für Logs und Tracing zwischen Diensten;
- Idempotenzschlüssel für wiederholte API-Anfragen;
- Namen von temporären Dateien, Ordnern und Sitzungen;
- Hex- und Base64-Tokens für Passwort-Reset-Links und Einladungen;
- PIN-Codes zur lokalen Prüfung – etwa in einer Demo-Umgebung.
Worin sich eine UUID von einer zufälligen Zeichenkette unterscheidet
Eine zufällige Zeichenkette ist einfach eine Folge von Zeichen ohne Zusagen. Eine UUID ist ein Standard: feste Länge, kanonische Schreibweise, Versions- und Variantennummer darin, fertige Unterstützung in Bibliotheken jeder Sprache. Wenn der Wert von Standardparsern gelesen und in einer Spalte gespeichert werden soll uuid, nimm eine UUID.
Wenn du einen echten Token brauchst – für einen Link, einen API-Schlüssel oder einen Dateinamen –, ist das Format freier. Hex ist praktisch, weil es nur aus Ziffern und den lateinischen Buchstaben a–f besteht und kein Escaping braucht. Base64 ist dichter: sechs Bit pro Zeichen statt vier, deshalb ist die Zeichenkette gleicher Stärke ein Viertel kürzer.
Wie viel Entropie steckt im Token
Die Entropie des Tokens berechnet sich als Länge × log₂(Alphabet). Bei einem PIN-Code besteht das Alphabet aus zehn Ziffern, deshalb ergeben selbst 12 Zeichen nur etwa 40 Bit: Ein solcher Code schützt vor zufälligem Ausprobieren, aber nicht vor gezieltem Durchprobieren.
| Typ | Berechnung | Entropie |
|---|---|---|
| UUID v4 | 122 zufällige Bit | 122 Bit |
| HEX, 16 Byte | 16 × 8 | 128 Bit |
| HEX, 32 Byte | 32 × 8 | 256 Bit |
| Base64, 32 Zeichen | 32 × 6 | 192 Bit |
| PIN, 6 Ziffern | 6 × log₂(10) | ≈ 20 Bit |
| Eigene Zeichenkette, 24 von 32 Zeichen | 24 × 5 | 120 Bit |
Wie man mit Tokens umgeht
- Für Sitzungen und APIs – mindestens 128 Bit Entropie;
- Für Einmal-Links ist eine kurze Lebensdauer wichtiger als die Länge;
- Speichere auf dem Server den Hash des Tokens, nicht den Token selbst;
- Schreibe Tokens nicht in Logs und Analytics;
- PIN – nur zur lokalen Prüfung, nicht für den Datenzugriff.