Skip to main content

Eindeutige UUID-v4-Bezeichner generieren.

Alle Berechnungen erfolgen lokal in Ihrem Browser. Es werden keine Daten an einen Server gesendet.

Die Ergebnisse dienen zur Information. Überprüfen Sie sie anhand anderer Quellen.

UUIDs: was die Stellen bedeuten

Eine UUID ist ein 128-Bit-Bezeichner, geschrieben als 32 Hexziffern im Muster 8-4-4-4-12. Version 4 — die dieses Werkzeug erzeugt — füllt fast alle Bits mit Zufallsdaten, sodass zwei unabhängig erzeugte Werte praktisch nie gleich sind.

So wird gerechnet

  • Erzeugt 128 Bit und überschreibt davon sechs: vier für die Version (4), zwei für die Variante.
  • Bleiben 122 Bit echter Zufälligkeit — daher die Kollisionsresistenz.
  • Formatiert das Ergebnis als 8-4-4-4-12 Hexzeichen, durch Bindestriche getrennt.
  • Nutzt crypto.getRandomValues des Browsers, eine kryptografisch sichere Quelle — nicht Math.random.
xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx
                 ↑    ↑
           Version  Variante (8, 9, a oder b)

Zufallsbits = 128 − 6 = 122

Rechenbeispiel

Eine echte v4-UUID Stelle für Stelle gelesen.

  1. f47ac10b-58cc-4372-a567-0e02b2c3d479
  2. Stelle 15 (Beginn der dritten Gruppe) ist 4 → Version 4, zufällig erzeugt
  3. Stelle 20 (Beginn der vierten Gruppe) ist a → die RFC-4122-Variante
  4. die übrigen 122 Bit sind zufällig
  5. Kollisionswahrscheinlichkeit: nach einer Milliarde UUIDs etwa 1 zu 10^22

Man müsste rund 2,7 × 10^18 UUIDs erzeugen, um eine 50-prozentige Chance auf eine einzige Kollision zu erreichen — groß genug, dass Duplikate ein Fehler im Code sind und kein Pech.

Das Ergebnis lesen

  • Version-4-UUIDs sortieren nicht. Als Primärschlüssel streuen sie Schreibzugriffe über den B-Baum-Index, was ihn fragmentiert und Inserts in großen Tabellen bremst. Version 7 legt einen Zeitstempel in die höherwertigen Bits und sortiert chronologisch — genau dafür gemacht.
  • Eine UUID ist ein Bezeichner, kein Geheimnis. Praktisch nicht erratbar, aber als Zugriffstoken behandelt heißt: wer sie in einer URL, einem Log oder einem Referer-Header sieht, hat den Schlüssel.
  • Speichern Sie sie als 16 Byte binär oder in einer nativen uuid-Spalte, nicht als 36-Zeichen-String. Die Textform verdoppelt den Speicher mehr als und bremst jeden Vergleich.
  • Groß- und Kleinschreibung ist unerheblich, Bindestriche sind Formatierung. Vergleichen Sie kanonisch, sonst entstehen falsche Abweichungen zwischen Systemen.

Häufige Fragen

Wie hoch ist die Kollisionswahrscheinlichkeit wirklich?
Bei 122 Zufallsbits bleibt die Wahrscheinlichkeit selbst dann vernachlässigbar, wenn man ein Jahrhundert lang eine Milliarde UUIDs pro Sekunde erzeugt. In der Praxis stellt sich jede gemeldete doppelte UUID als Generator mit festem Seed oder als Wiederverwendung heraus.
v4 oder v7 für Datenbankschlüssel?
v7 für alles, was in Menge eingefügt wird, weil es nach Erzeugungszeit sortiert und Indexschreibvorgänge sequenziell hält. v4 bleibt richtig, wenn der Bezeichner den Erstellungszeitpunkt bewusst nicht verraten soll.