UUID-Generator
Generieren Sie UUID v4, v7 und v1 in großen Mengen, bis zu 10.000 auf einmal. Eine vorhandene Kennung können Sie auch decodieren und sehen dann Version, Variante und Zeitstempel.
So generieren Sie eine UUID
- 1
UUID-Version wählen
Nehmen Sie v4 für reinen Zufall, v7 für Kennungen, die sich in der Reihenfolge ihrer Erzeugung sortieren, oder v1 für den klassischen zeitbasierten Aufbau. NIL und MAX liefern die beiden reservierten konstanten Werte.
- 2
Anzahl und Format festlegen
Generieren Sie bis zu 10.000 UUIDs auf einmal. Wählen Sie Groß- oder Kleinbuchstaben und legen Sie fest, ob die Bindestriche bleiben. Jeden Wert können Sie in Anführungszeichen oder geschweifte Klammern einschließen oder ihm das Präfix urn:uuid: voranstellen – so fügen Sie ihn direkt in Code ein.
- 3
Liste kopieren oder herunterladen
Kopieren Sie alle erzeugten Werte mit einem Klick in die Zwischenablage oder laden Sie die ganze Liste als einfache Textdatei oder als CSV herunter. Listen mit v1 und v7 enthalten eine Spalte mit dem Zeitstempel.
Warum v7 bei Datenbankschlüsseln v4 ablöst
Eine UUID v4 besteht aus 122 Bit reinem Zufall. Werden viele davon in einen Datenbankindex eingefügt, kommen sie in völlig unvorhersehbarer Reihenfolge an. Die Schreibzugriffe verteilen sich dadurch über den ganzen Index, und bei großen Datenmengen leidet die Leistung. Eine UUID v7 beginnt mit einem 48-Bit-Zeitstempel in Millisekunden, deshalb sortieren sich später erzeugte Kennungen immer hinter früher erzeugten. So erhalten Sie dieselbe Schreiblokalität wie bei einer automatisch hochgezählten Ganzzahl und behalten trotzdem den Schutz vor Kollisionen und die dezentrale Erzeugung einer UUID. Dieses Tool hält v7-Listen sogar innerhalb derselben Millisekunde monoton steigend: Die obersten Bits des Zufallsteils dienen als Zähler.
Warum v1 hier nie eine MAC-Adresse enthält
Die ursprüngliche Definition von UUID v1 aus dem Jahr 1993 bildete die letzten 48 Bit aus der MAC-Adresse der Netzwerkkarte – in der Annahme, dass keine zwei Computer dieselbe haben. Im Browser ist diese Adresse nicht verfügbar. Selbst dort, wo sie verfügbar ist, wäre eine echte MAC-Adresse in jeder Datenbankzeile konstruktionsbedingt ein Leck, über das sich Geräte verfolgen lassen. Dieser Generator füllt diese 48 Bit immer mit Zufallsbytes und setzt das Multicast-Bit, genau wie RFC 9562 es erlaubt. So bleibt der Vorteil von v1, die Sortierung nach Zeitstempel, erhalten, ohne dass eine Hardwarekennung preisgegeben wird.
Jede Kennung wird lokal erzeugt
Erzeugung, Formatierung und Decodierung laufen alle in diesem Tab und nutzen dafür die Web Crypto API. Nichts wird an einen Server gesendet, und nichts wird im Speicher des Browsers abgelegt. In der Nutzungsstatistik kommt nur ein allgemeines Ereignis „Button gedrückt“ mit Version und Anzahl an – nie die Kennungen selbst.
Häufige Fragen
Was ist der Unterschied zwischen UUID v4 und v7?
Eine UUID v4 besteht aus 122 Bit reinem Zufall, ganz ohne Struktur. Eine UUID v7 nutzt ihre ersten 48 Bit für einen Zeitstempel in Millisekunden. Eine Liste von v7-Werten sortiert sich deshalb in der Reihenfolge, in der sie erzeugt wurde – nützlich für einen Primärschlüssel in der Datenbank. Trotzdem steckt darin noch genug Zufall, um Kollisionen zu vermeiden.
Wann sollte ich für Datenbankschlüssel v7 statt v4 verwenden?
Nehmen Sie v7 immer dann, wenn die Kennung zum Primärschlüssel oder zu einer Indexspalte wird: Durch die zeitliche Ordnung liegen neue Zeilen im Index physisch nah beieinander. Das Einfügen geht messbar schneller als bei der zufälligen Streuung, die ein v4-Schlüssel erzeugt. Nehmen Sie v4, wenn der Wert nie in einen Index kommt, etwa bei einem einmaligen Token.
Warum enthält v1 hier keine MAC-Adresse?
Browser können die MAC-Adresse eines Geräts nicht auslesen. Selbst außerhalb des Browsers würde eine MAC-Adresse in jeder erzeugten Kennung verraten, auf welchem physischen Rechner diese entstanden ist. Dieses Tool füllt diesen Teil einer UUID v1 stattdessen mit Zufallsbytes – das erlaubt RFC 9562 ausdrücklich.
Wie wahrscheinlich ist eine UUID-Kollision?
Bei v4 müssten Sie etwa 85 Jahre lang eine Milliarde UUIDs je Sekunde erzeugen, um mit rund 50 % Wahrscheinlichkeit eine einzige Kollision zu bekommen – in der Praxis passiert das nicht. Bei v7 und v1 kommt zum Zufall noch ein Zeitstempel hinzu, was versehentliche Kollisionen noch unwahrscheinlicher macht.
Kann ich eine UUID als Passwort oder Zugriffstoken verwenden?
Besser nicht. Eine UUID v4 enthält zwar durchaus nennenswerten Zufall, aber ihr Format ist vorhersehbar, und Programme behandeln sie als etwas, das öffentlich sichtbar sein darf – anders als ein Token, das geheim bleiben soll. Für alles, was geheim bleiben muss, nutzen Sie den dafür gedachten „Passwort-Generator“.
Wozu dienen die NIL- und die MAX-UUID?
NIL (nur Nullen) ist der reservierte Wert, der in vielen Systemen „keine Kennung“ oder „nicht gesetzt“ bedeutet. MAX (nur Einsen) wurde erst später definiert und dient in Bereichsabfragen als Wächterwert für „größer als jede echte UUID“. Keiner der beiden Werte wird zufällig erzeugt: Es sind feste Konstanten.
Woher kommt der Zufall?
Aus crypto.getRandomValues der Web Crypto API und bei v4 direkt aus crypto.randomUUID, sofern der Browser das unterstützt. Math.random wird in diesem Tool nirgends verwendet.
Wird eine UUID beim Decodieren irgendwohin gesendet?
Nein. Der Decoder liest das Versions-Nibble, die Variantenbits und bei v1 und v7 den eingebetteten Zeitstempel vollständig in Ihrem Browser aus. Der eingefügte Wert verlässt die Seite nie.