Was ist eine UUID?
Eine UUID (Universally Unique Identifier) ist ein 128-Bit-Wert, der als 36-stellige Zeichenkette dargestellt wird, wie zum Beispiel 550e8400-e29b-41d4-a716-446655440000. Das Format und die Versionssemantik sind durch RFC 4122 für v1 bis v5 definiert und durch RFC 9562 für die neueren Versionen v6, v7 und v8. Dieses Tool erzeugt v4 (rein zufällig), v1 (Zeitstempel plus zufällige Node-ID) und v7 (Unix-Millisekunden-Zeitstempel-Präfix plus zufälliges Suffix, sortierbar nach Erzeugungszeitpunkt) — alles in deinem Browser, mithilfe der Web Crypto API der Plattform. Es werden keine Daten an einen Server gesendet.
Wie funktioniert die UUID-Generierung?
Jede Version wägt Determinismus, Sortierbarkeit und Entropie unterschiedlich ab. Das Tool wählt den passenden Algorithmus anhand Ihrer Auswahl:
- v4 (zufällig) ruft das
crypto.randomUUID()des Browsers auf, das 122 Bit kryptografischer Zufälligkeit zurückgibt, wobei die 6 festen Bits (Version0100und Variante10) an den richtigen Stellen gesetzt sind. Kollisionen sind astronomisch unwahrscheinlich — man müsste etwa 2,71 Trillionen v4-UUIDs erzeugen, um mit 50 % Wahrscheinlichkeit auf ein einziges Duplikat zu stoßen. - v1 (Zeitstempel + Node) packt einen 60-Bit-Gregorianischen Zeitstempel (100-Nanosekunden-Ticks seit dem 15.10.1582) in
time_low/time_mid/time_hi_and_version, setzt das Versions-Nibble auf0001, wählt eine 14-Bit-Clocksequenz mit gesetzten Variant-Bits und verwendet eine zufällige 48-Bit-Node-ID, bei der das Multicast-Bit zwangsweise gesetzt ist (RFC 4122 §4.5 erlaubt ausdrücklich eine zufällige Node-ID, wenn keine Hardware-MAC verfügbar ist — das Multicast-Bit kennzeichnet sie als Nicht-MAC). - v7 (sortierbarer Zeitstempel) legt gemäß RFC 9562 §5.7 einen 48-Bit-Big-Endian-Unix-Millisekunden-Zeitstempel an, gefolgt von der 4-Bit-Version
0111, 12 Zufallsbits, der 2-Bit-Variante10und weiteren 62 Zufallsbits. Da der Zeitstempel in den höchstwertigen Bits liegt, sortieren v7-UUIDs lexikographisch in Erzeugungsreihenfolge — eine Eigenschaft, die keine andere UUID-Version ohne zusätzliche Kodierung bietet. - Sämtliche Zufälligkeit stammt aus
crypto.getRandomValues(), dem kryptografisch sicheren RNG des Browsers. Sowohl v1 als auch v7 enthalten einen Intra-Tick-Monotonieschutz, sodass zwei aufeinanderfolgende Aufrufe innerhalb desselben Clock-Ticks die zweite UUID weiterhin über die erste sortieren — wichtig für Massenerzeugungen, die schneller laufen als die Millisekundenuhr. - Die Format-Pipeline läuft nach der Erzeugung. Du kannst Bindestriche entfernen, in Großbuchstaben umschalten, den Wert in geschweifte Klammern setzen (
{…}— die Microsoft-GUID-Konvention) oder die rohen 16 Byte als Base64 darstellen (22 Zeichen Ausgabe, ohne Padding). Der Base64-Modus überschreibt die anderen Formatoptionen, da Base64 eine eigene Darstellung ist.
Warum diesen UUID-Generator verwenden?
- Nichts verlässt deinen Browser. Die Web Crypto API läuft lokal; die Seite stellt nach dem initialen Dokumentenladevorgang keinerlei Netzwerkanfragen. Öffne die DevTools, klicke auf Generieren, und das Netzwerk-Panel bleibt still.
- RFC-konforme Ausgabe. v4 folgt RFC 4122 §4.4, v1 folgt §4.2 und §4.5 und v7 folgt RFC 9562 §5.7. Versions-Nibble und Variant-Bits sind dort platziert, wo die Standards es vorgeben — jede UUID besteht den kanonischen Versions-Regex.
- Sortierbares v7 für Datenbankschlüssel. Eine v7-UUID, die als Clustered Primary Key in Postgres, MySQL oder SQL Server eingesetzt wird, hält Inserts append-only am Index — keine Page Splits, kein zufälliges I/O — und bleibt dabei global eindeutig. v4 kann das nicht, weil seine Bits zufällig sind.
- Massengenerierung ohne Rate-Limits. Erzeuge 1, 10, 100 oder 1.000 UUIDs auf einmal. Es gibt keine Kontingente und keine Anmeldung — das Tool läuft in deinem Tab, also ist die Obergrenze deine CPU, nicht die API-Stufe eines Anbieters.
Was sind häufige Anwendungen von UUIDs?
UUIDs werden überall dort eingesetzt, wo ein System einen global eindeutigen Bezeichner ohne zentrale Koordinierung braucht:
- Datenbank-Primärschlüssel. Auto-Increment-Ganzzahlen verraten Zeilenanzahlen und machen Sharding kaputt. UUIDs sind über Shards hinweg stabil, sicher zwischen Regionen zusammenzuführen und halten (mit v7) B-Tree-Inserts heiß, ohne Page Splits. Eine typische Anwendung erzeugt die UUID clientseitig, schickt sie im INSERT mit und muss nie zum Server für den Schlüssel zurückgehen.
- Request-Korrelations-IDs. HTTP-Middleware hängt jeder eingehenden Anfrage eine v4-UUID an, protokolliert sie in jedem Span und gibt sie nach unten weiter (oft als
X-Request-Id-Header). Wenn ein Kunde einen Fehler meldet, fügt der Support-Ingenieur die ID ein und der gesamte Request-Trace taucht auf — über Dienste und Zeitzonen hinweg — eindeutig. - Idempotenz-Schlüssel. Zahlungs-APIs (Stripe, Adyen, Square) akzeptieren einen
Idempotency-Key-Header, sodass eine wiederholte Anfrage den Kunden nie doppelt belastet. Eine clientseitig erzeugte UUID garantiert, dass der Schlüssel pro logischer Operation eindeutig ist — genau der Vertrag, den diese APIs verlangen.
Wie sieht ein Beispiel für eine UUID aus?
In Node.js oder einem modernen Browser liefert der Einzeiler crypto.randomUUID() eine frische v4-UUID — zum Beispiel 3f50b5a8-2c54-4b9c-9c1f-3e5c7e2b8d12. Verwende sie als Request-ID oder Idempotenz-Schlüssel. Wenn die UUID in eine Datenbankspalte geht, die der Clustered Primary Key sein wird, erzeuge stattdessen v7: Zwei v7-Werte, die eine Millisekunde auseinander erzeugt werden, wie 0190a3b0-7d4f-7c9e-8b21-a4d6f0bd9c11 und 0190a3b0-7d50-7f15-9c4e-72b3e0c1d8a4, sortieren lexikographisch in Erzeugungsreihenfolge. Der uuid-Typ von Postgres speichert beide Versionen identisch — der Unterschied zeigt sich beim Index-Schreiben, wo v7 rechts am B-Tree anhängt, während v4 die Inserts streut und zufälliges I/O erzwingt.
Dieser UUID-Generator hat genau eine Aufgabe: einen Klick in einen oder viele RFC-konforme Identifier zu verwandeln, so formatiert wie du sie brauchst, ohne deine Anfrage an einen Server zu senden. Wähle eine Version, wähle eine Anzahl, wähle ein Format — generieren, kopieren, weitermachen.