UUID-Generator

RSS

Erzeugen Sie kryptografisch zufällige UUIDs der Version 4 oder zeitbasierte UUIDs der Version 7 – einzeln oder in großer Zahl.

Läuft zu 100 % in Ihrem Browser. Nichts, was Sie einfügen, wird hochgeladen oder gespeichert.

So verwenden Sie den UUID-Generator

  1. Wählen Sie die Version: v4 (zufällig) oder v7 (zeitlich sortiert).
  2. Legen Sie fest, wie viele UUIDs Sie brauchen, von einer einzelnen bis zu einer ganzen Liste.
  3. Schalten Sie bei Bedarf auf Großbuchstaben um oder entfernen Sie die Bindestriche.
  4. Kopieren Sie einen einzelnen Wert oder die ganze Liste.

UUIDs werden in Ihrem Browser mit dessen kryptografisch sicherem Zufallszahlengenerator erzeugt. Sie werden nie an unsere Server gesendet oder dort gespeichert, sodass niemand sonst weiß, welche Kennungen Sie erzeugt haben.

Was ist eine UUID?

Eine UUID (Universally Unique Identifier) ist ein 128-Bit-Wert, der auf jedem Rechner unabhängig erzeugt werden kann, mit einer verschwindend geringen Wahrscheinlichkeit, mit einem anderen Wert zu kollidieren. Es braucht weder eine zentrale Registrierungsstelle noch eine Abfrage an eine Datenbank. Das macht UUIDs ideal für verteilte Systeme, Offline-Clients und das Zusammenführen von Daten aus mehreren Quellen. Sie werden auch häufig für Request-IDs und für den Claim jti in Tokens verwendet, die Sie mit dem JWT-Decoder untersuchen können. GUID (Globally Unique Identifier) ist Microsofts Bezeichnung für dasselbe.

UUIDs werden als 32 Hexadezimalziffern in fünf durch Bindestriche getrennten Gruppen geschrieben, nach dem Muster 8-4-4-4-12 (insgesamt 36 Zeichen):

f47ac10b-58cc-4372-a567-0e02b2c3d479
              ^    ^
              |    Variante (8, 9, a oder b)
              Version (4)

Die erste Ziffer der dritten Gruppe ist die Version; die erste Ziffer der vierten Gruppe kodiert die Variante. Die aktuelle Spezifikation ist RFC 9562 (2024). Sie hat RFC 4122 abgelöst und die Versionen 6, 7 und 8 hinzugefügt.

Version 4 und Version 7 im Vergleich

UUID v4UUID v7
Inhalt122 Zufallsbits (6 Bits fest für Version und Variante)48-Bit-Unix-Zeitstempel in Millisekunden, danach Zufallsbits
SortierungZufälligUngefähr chronologisch
VerrätNichtsIhren Erstellungszeitpunkt
Am besten fürTokens, öffentliche IDs, allgemeine ZweckePrimärschlüssel in Datenbanken, Ereignisprotokolle

Warum v7 für Datenbankindizes besser ist

Primärschlüssel werden meist in einem B-Baum-Index gespeichert. Zufällige v4-Werte landen an zufälligen Positionen, sodass jedes Einfügen eine andere Seite berührt. Das führt zu Page Splits, schlechter Cache-Lokalität und aufgeblähten Indizes bei großen Tabellen. Da v7-UUIDs mit einem Zeitstempel beginnen, werden neue Werte nahe am Ende des Index angehängt, ähnlich wie eine Auto-Increment-Ganzzahl, und die Vorteile global eindeutiger, clientseitig erzeugter IDs bleiben erhalten.

Häufige Fehler

  • UUIDs als Text speichern. Ein String mit 36 Zeichen belegt mehr als doppelt so viel Platz wie die 16 Rohbytes. Verwenden Sie einen nativen Typ uuid (PostgreSQL) oder BINARY(16) (MySQL).
  • UUIDs als Geheimnisse verwenden. v4-Werte sind schwer zu erraten, aber sie sind Kennungen, keine Zugangsdaten. v7-Werte geben ihren Erstellungszeitpunkt preis und sind teilweise vorhersagbar. Verwenden Sie für Passwort-Resets und API-Schlüssel ein eigenes zufälliges Token.
  • Vergleiche, die Groß- und Kleinschreibung unterscheiden. RFC 9562 schreibt eine Ausgabe in Kleinbuchstaben vor, verlangt aber, dass Eingaben in beiden Schreibweisen akzeptiert werden. Normalisieren Sie Strings vor dem Vergleich.
  • Schwache Zufallsquellen. Werden v4-UUIDs mit Math.random() erzeugt, leidet ihre Eindeutigkeit. Verwenden Sie einen kryptografisch sicheren Generator.

UUIDs im Code erzeugen

// JavaScript (Browser und Node.js)
crypto.randomUUID();                 // v4

# Python
import uuid
uuid.uuid4()
uuid.uuid7()                         # Python 3.14+

-- PostgreSQL
SELECT gen_random_uuid();            -- v4 (PostgreSQL 13+)
SELECT uuidv7();                     -- PostgreSQL 18+

// Java
java.util.UUID.randomUUID();

// C# / .NET
Guid.NewGuid();                      // v4
Guid.CreateVersion7();               // .NET 9+

# Shell (Linux, macOS)
uuidgen
Tipp: Sie brauchen den Zeitstempel einer v7-UUID? Die ersten 12 Hexadezimalziffern (ohne Bindestriche) sind die Unix-Zeit in Millisekunden. Wandeln Sie sie von Hexadezimal in Dezimal um und fügen Sie das Ergebnis in den Unix-Timestamp-Konverter ein.

Häufig gestellte Fragen

Können zwei UUIDs jemals gleich sein?

Theoretisch ja, praktisch nein. Mit 122 Zufallsbits ist die Zahl möglicher v4-Werte so groß, dass Sie viele Jahrzehnte lang jede Sekunde Milliarden UUIDs erzeugen müssten, bevor ein einziges Duplikat wahrscheinlich würde. Kollisionen in echten Systemen entstehen fast immer durch einen fehlerhaften Zufallszahlengenerator oder kopierte Daten, nicht durch Zufall.

Was ist der Unterschied zwischen einer UUID und einer GUID?

In der Praxis keiner. GUID ist der Begriff in Microsoft-Technologien; Format und Größe sind identisch.

Sollte ich v4 oder v7 verwenden?

Verwenden Sie v7 für Primärschlüssel in Datenbanken und für alles, was nach Erstellungszeit sortiert sein soll. Verwenden Sie v4, wenn die ID nichts verraten soll, etwa bei Kennungen in öffentlichen URLs.

Ist die Nil-UUID gültig?

Ja. 00000000-0000-0000-0000-000000000000 ist die spezielle Nil-UUID, und RFC 9562 definiert außerdem eine Max-UUID, die nur aus f-Ziffern besteht. Beide werden oft als Platzhalter verwendet.

Aktualisiert

In die Zwischenablage kopiert