Zum Inhalt springen

UUID-Generator (v4 & v7)

Erzeugt 1–1000 UUIDs der Version 4 oder 7 auf einmal und liest aus einer eingefügten UUID Version, Variante und bei Version 7 den Erzeugungszeitpunkt aus.

UUIDs erzeugen

Version
Erzeuge 1 bis 1000 auf einmal.

Ergebnisse

UUID-Prüfer

Deine Eingaben werden nur in diesem Browser verarbeitet und nie an einen Server gesendet. So funktioniert es

UUID-v4-Beispiel mit 8-4-4-4-12-Zeichengruppierung

So benutzt du den Generator

Beim Öffnen der Seite stehen schon 10 UUIDs der Version 4 bereit. Unter UUIDs erzeugen stellst du Folgendes ein:

  • Version: „v4 (vollständig zufällig)“ oder „v7 (zeitlich sortierbar)“. Sobald du wechselst, werden neue Werte erzeugt.
  • Anzahl: eine ganze Zahl von 1 bis 1000. Liegt deine Eingabe außerhalb, wird sie beim Verlassen des Felds auf 1 oder 1000 gesetzt.
  • Großbuchstaben, Ohne Bindestriche, Geschweifte Klammern { }: die Schreibweise der Ergebnisse.
  • Erzeugen: neue Werte mit denselben Einstellungen.
  • Alle kopieren, Als .txt herunterladen: alle Ergebnisse, eines pro Zeile. Die heruntergeladene Datei heißt uuid.txt. Über den Kopier-Button in jeder Zeile holst du dir einen einzelnen Wert.

Erzeugst du mehr als 100 Stück, zeigt die Seite zunächst nur die ersten 100. Den Rest blendest du mit „Alle anzeigen“ ein. Beim Kopieren und Herunterladen sind auch die nicht angezeigten Werte dabei.

Darunter sitzt der UUID-Prüfer: Fügst du eine einzelne UUID ein, zeigt er „Version“, „Variante“ und „Enthaltener Zeitstempel“.

Worin sich Version 4 und Version 7 unterscheiden

Eine UUID ist ein 128-Bit-Wert. 6 Bit davon sind fest für Version und Variante vergeben. Wie die übrigen 122 Bit gefüllt werden, macht den Unterschied zwischen den Versionen aus.

Stelle Version 4 Version 7
Erste 48 Bit Zufall Millisekunden seit dem 1. Januar 1970 (UTC)
4 Bit Version (4) Version (7)
12 Bit Zufall Laut RFC 9562 Zufallsbits, dieses Tool nutzt sie als Zähler
2 Bit Variante Variante
62 Bit Zufall Zufall

Einer UUID der Version 4 sieht man nichts an. Dafür hat sie keine Sortierreihenfolge: Als Primärschlüssel in einer Datenbank landen neue Werte quer über den Index verstreut. Das führt zu häufigeren Seitenteilungen im B-Baum und zu einer schlechteren Cache-Trefferquote.

Bei Version 7 steht vorn die Zeit. Sortierst du die Werte als Strings, erhältst du die Reihenfolge ihrer Erzeugung, und als Primärschlüssel reihen sich neue Werte am Ende des Index ein. Der Preis dafür: Der Wert verrät seinen Erzeugungszeitpunkt auf die Millisekunde. Für Kennungen, bei denen niemand von außen auf den Zeitpunkt einer Registrierung oder Bestellung schließen soll, ist Version 4 die richtige Wahl.

Version 4 erzeugt das Tool mit crypto.randomUUID() des Browsers, die Zufallsbits der Version 7 kommen aus crypto.getRandomValues(). Beides sind kryptografisch sichere Zufallszahlen.

Warum UUIDs der Version 7 aus einem Durchgang in Reihenfolge erscheinen

Erzeugst du mehrere UUIDs der Version 7 auf einmal, bekommt der ganze Durchgang dieselbe Millisekunde. Bei gleichem Zeitstempel bestimmt der 12-Bit-Zähler dahinter die Reihenfolge.

  • Beim ersten Wert eines Durchgangs startet der Zähler mit einer Zufallszahl von 0 bis 2047. In 12 Bit passen Zahlen bis 4095. Dass nur die untere Hälfte genutzt wird, schafft Luft gegen einen Überlauf.
  • Mit jedem weiteren Wert steigt der Zähler um 1. Da höchstens 1000 Werte auf einmal entstehen, endet er selbst beim größten Startwert 2047 bei 3046 und läuft nie über.
  • Die hinteren 62 Bit werden für jeden Wert neu gezogen.

Ein Beispiel: Ist der Zeitstempel der 1. Januar 2026, 00:00:00.000 (UTC) und beginnt der Zähler bei 2047, fangen drei aufeinanderfolgende Werte mit 019b76da-a800-77ff, 019b76da-a800-7800 und 019b76da-a800-7801 an. Die 7 am Anfang der dritten Gruppe ist die Version, die drei Stellen danach sind der Zähler.

Von einem Durchgang zum nächsten wird der Zähler nicht weitergeführt. Klickst du erneut auf „Erzeugen“, beginnt alles mit der dann aktuellen Zeit von vorn, und der spätere Durchgang liegt über seinen Zeitstempel hinter dem früheren. Wurde die Geräteuhr dazwischen zurückgestellt, gilt diese Reihenfolge nicht mehr.

Wie wahrscheinlich sind doppelte Werte?

Bei Version 4 sind 122 Bit zufällig. Rechnet man mit dem Geburtstagsparadoxon, muss man etwa 2,7 × 10^18 Werte erzeugen, bis die Wahrscheinlichkeit für mindestens eine Dopplung 50 % erreicht. Selbst bei 1 Milliarde Werten pro Sekunde dauert das rund 86 Jahre.

Bei der Version 7 dieses Tools werden pro Wert 62 Bit neu gezogen. Innerhalb eines Durchgangs unterscheiden sich die Zähler, dort kann sich also nichts doppeln. Zwei Werte, die auf verschiedenen Geräten oder in verschiedenen Tabs in derselben Millisekunde entstehen, sind nur dann gleich, wenn Zähler und alle 62 Zufallsbits übereinstimmen.

Was der Prüfer ausliest

Fügst du 018f4d2e-7c3a-7b21-9e2f-1a2b3c4d5e6f in den Prüfer ein, erhältst du Version 7, die Variante „RFC 9562 (Standard)“ und als enthaltenen Zeitstempel den 6. Mai 2024, 09:14:03 (UTC). Angezeigt wird die Zeit in der Zeitzone dieses Browsers, in einer UTC+9-Zeitzone also 18:14:03.

  • Version ist die erste Stelle der dritten Gruppe (die 13. Hex-Stelle), und zwar genau so, wie sie dasteht. Auch Werte, die der Standard nicht kennt, werden unverändert angezeigt.
  • Variante ergibt sich aus den Bits der ersten Stelle der vierten Gruppe.
Anzeige Erste Stelle der vierten Gruppe Bedeutung
NCS (abwärtskompatibel) 0–7 Für die Kompatibilität mit dem alten NCS-Verfahren freigehalten
RFC 9562 (Standard) 8, 9, a, b Die heute üblichen Standard-UUIDs
Microsoft (alte GUID) c, d Für die Kompatibilität mit alten Microsoft-GUIDs
Für zukünftige Verwendung reserviert e, f Noch nicht definiert
  • Bestehen alle Stellen aus 0, erscheint die Markierung „Nil-UUID“, bestehen alle aus f, erscheint „Max-UUID“. Laut RFC 9562 kann Nil für „kein Wert“ stehen und Max als Marke dienen, etwa für das Ende einer Liste. Ihren Stellen entsprechend wird Nil als Version 0 mit NCS-Variante angezeigt, Max als Version 15 mit reservierter Variante.

Der Prüfer schaut nur auf die Form. Was aus 32 Hexadezimalstellen besteht, kommt durch. Das heißt nicht, dass diese UUID je irgendwo vergeben wurde. Steht bei einem von Hand veränderten Wert an der Versionsstelle eine 7, liest der Prüfer auch dort einen Zeitstempel aus den entsprechenden Stellen und zeigt ihn an.

Quellen

Häufige Fragen

Entstehen neue UUIDs, wenn ich Großbuchstaben oder „Ohne Bindestriche“ umschalte?

Nein. „Großbuchstaben“, „Ohne Bindestriche“ und „Geschweifte Klammern { }“ ändern nur, wie die vorhandenen Werte geschrieben werden. Neue Werte entstehen in drei Fällen: wenn du auf „Erzeugen“ klickst, wenn du die „Version“ wechselst und wenn du die „Anzahl“ änderst und das Feld verlässt.

Wofür braucht man die Schreibweise ohne Bindestriche oder mit geschweiften Klammern?

Die 32-stellige Form ohne Bindestriche ist praktisch für Dateinamen und manche Datenbankspalten. Die Form in geschweiften Klammern kennt man vor allem von GUIDs in der Windows-Registrierung und bei COM-Komponenten. Sind alle drei Optionen eingeschaltet, sieht ein Wert so aus: {018F4D2E7C3A7B219E2F1A2B3C4D5E6F}.

Zeigt der Prüfer bei einer UUID der Version 1 den Erzeugungszeitpunkt an?

Nein. Der Prüfer liest nur den Zeitstempel der Version 7. Bei UUIDs, die die Zeit anders ablegen, etwa Version 1 oder Version 6, siehst du Version und Variante, unter „Enthaltener Zeitstempel“ steht aber „Dieses Tool liest Zeitstempel nur aus UUIDs der Version 7.“

Kommt der Prüfer mit Werten zurecht, die mit urn:uuid: beginnen oder in Anführungszeichen stehen?

Nein. Der Prüfer erwartet 32 Hexadezimalstellen und lässt daneben nur Bindestriche, Groß- und Kleinschreibung sowie ein umschließendes Paar geschweifter Klammern zu. Mit dem Präfix urn:uuid: oder mit Anführungszeichen erscheint „Das ist keine gültige UUID.“ Entferne beides vor dem Einfügen.

Zuletzt aktualisiert: