UUID
Erzeugen Sie zufällige Kennungen der Version 4 in der Schreibweise, die Sie brauchen.
Kennungen
Der Zufall stammt aus der kryptografischen Quelle des Browsers, und nichts wird weitergeschickt.
So funktioniert es
Eine UUID ist eine Kennung von 128 Bit, geschrieben als 32 hexadezimale Zeichen in fünf Gruppen, durch Bindestriche getrennt.
Version 4 besteht aus zufälligen Bits, bis auf sechs Bits, die Version und Variante angeben. Das ergibt 122 Bit Zufall, also gut fünf Sextillionen mögliche Werte, also 5,3 × 10³⁶.
Bei so vielen Möglichkeiten muss keine zentrale Stelle die Kennungen vergeben. Zwei Systeme können je eine erzeugen, ohne sich abzustimmen, und das Risiko einer Kollision ist verschwindend klein.
Der Zufall kommt aus der kryptografischen Zufallsquelle des Browsers, die es genau für Werte gibt, die nicht zu erraten sein sollen.
Die Schreibweise mit Großbuchstaben oder geschweiften Klammern stammt aus der Windows-Welt. Es ist dieselbe Kennung, nur anders geschrieben.
So entstehen die Kennungen
Das Werkzeug ruft die Browserfunktion crypto.randomUUID auf, die nach der Web Cryptography API des W3C eine UUID der Version 4 aus kryptografisch sicheren Zufallsbytes erzeugt. In älteren Browsern ohne diese Funktion füllt das Werkzeug selbst 16 Bytes mit crypto.getRandomValues und überschreibt danach sechs Bits: Die obere Hälfte des siebten Bytes wird zu 0100, was Version 4 bedeutet, und die beiden höchsten Bits des neunten Bytes werden zu 10, was die Variante kennzeichnet. Pro Durchgang entstehen bis zu 100 Kennungen. Großbuchstaben, geschweifte Klammern und Bindestriche ändern nur die Schreibweise, nicht die Werte.
So erkennen Sie Version 4
Die festen Bits sind im Text zu sehen. Das erste Zeichen der dritten Gruppe ist immer 4. Das erste Zeichen der vierten Gruppe ist 8, 9, a oder b, weil dort nur zwei der vier Bits festliegen. In 5fe572ca-3bc3-46dd-a3ed-141cd550c091, erzeugt mit dem Code des Werkzeugs, sind diese Zeichen 4 und a. Steht an diesen Stellen etwas anderes, ist die Kennung keine Version 4. RFC 9562 erlaubt, die Buchstaben groß, klein oder gemischt zu schreiben.
Grenzfälle
Eine UUID ist eine Kennung, kein Geheimnis. RFC 9562 sagt, Implementierungen sollten nicht annehmen, dass UUIDs schwer zu erraten sind, und sie dürfen nicht als Sicherheitsmerkmal dienen, also als Kennung, deren bloßer Besitz Zugang gewährt. Ein Link zum Zurücksetzen eines Passworts braucht ein Token, das für diesen Zweck gebaut ist.
Als Schlüssel in einer Datenbank hat Version 4 einen Nachteil, auf den der Standard selbst hinweist: Nacheinander erzeugte Werte landen im Index weit auseinander, jede neue Zeile wird also an einer zufälligen Stelle eingefügt. Version 7 beginnt mit einem Zeitstempel und sortiert sich deshalb in der Reihenfolge, in der die Werte entstanden sind. Das Werkzeug erzeugt nur Version 4.
Zwei Werte haben im Standard eigene Namen: die Nil-UUID aus lauter Nullen und die Max-UUID aus lauter f. Keine von beiden kann aus dem Werkzeug kommen, weil die Bits für Version und Variante immer gesetzt sind.