Erzeuge zufällige v4- oder zeitlich sortierte v7-UUIDs, einzeln oder bis zu 1.000 auf einmal, in Klein- oder Großbuchstaben oder im GUID-Format mit geschweiften Klammern. Füg eine beliebige UUID in den Validator ein, um Version und eingebetteten Zeitstempel zu sehen. Alles läuft in deinem Browser, ohne Upload und ohne Anmeldung.
122 Zufallsbits aus dem sicheren Zufallsgenerator deines Browsers. Die Standardwahl für IDs, die nichts verraten sollen.
Zufällige UUID (Version 4)
UUID wird erzeugt…
Füg eine UUID oder GUID ein, um sie zu prüfen. Du siehst Version, Variante und bei v1, v6 und v7 auch den Zeitpunkt, an dem sie erstellt wurde.
Du schreibst Tests, Spezifikationen oder Entwicklerdokus? Diese Anleitungen passen gut zu einem UUID-Generator:
Eine UUID (Universally Unique Identifier) ist ein 128-Bit-Wert, den jedes System selbst erzeugen kann, ohne bei einem zentralen Server nach der nächsten Nummer zu fragen. Trotzdem kann das System sicher sein, dass niemand sonst denselben Wert erzeugt. Geschrieben wird sie als 32 Hexadezimalziffern in fünf Gruppen, 8-4-4-4-12, also 36 Zeichen insgesamt:
017f22e2-79b0-7cc3-98c4-dc0c0c07398f
Die erste Ziffer der dritten Gruppe ist die Version (hier 7), die erste Ziffer der vierten Gruppe enthält die Variante, bei Standard-UUIDs also 8, 9, a oder b. Deshalb passt jede v4-UUID auf das Muster xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx.
Der aktuelle Standard ist RFC 9562 vom Mai 2024. Er ersetzt RFC 4122, lässt die Versionen 1 bis 5 unverändert und ergänzt die Versionen 6, 7 und 8 sowie die Max-UUID, bei der alle Bits auf eins stehen.
UUID oder GUID: GUID ist der Name, den Microsoft für dasselbe verwendet. Windows-Tools wie die Registry zeigen GUIDs meist in Großbuchstaben mit geschweiften Klammern, etwa {3F2504E0-4F89-41D3-9A0C-0305E82C3301}, der Wert dahinter ist aber eine normale UUID. (Guid.ToString() in .NET gibt standardmäßig Kleinbuchstaben ohne Klammern aus.) Der einzige praktische Unterschied zeigt sich im Binärformat: Windows speichert die ersten drei Gruppen als Little-Endian, deshalb wirken rohe 16-Byte-GUIDs in anderen Systemen manchmal durcheinandergewürfelt.
Die Version verrät, wie die 128 Bits zustande kommen. Diese sechs Versionen decken fast jeden echten Einsatz ab:
| Version | Aufbau | Nach Zeit sortierbar | Geeignet für |
|---|---|---|---|
| v1 | Zeitstempel (100 ns seit 1582), Taktsequenz, Node-ID (MAC-Adresse oder zufällig) | Nein, die niederwertigen Zeitbits stehen vorn | Bestehende Systeme, die v1 schon nutzen |
| v3 / v5 | MD5-Hash (v3) oder SHA-1-Hash (v5) aus Namensraum und Name | Nein | Gleiche Eingabe soll immer dieselbe ID ergeben |
| v4 | 122 Zufallsbits | Nein | IDs, die nichts verraten sollen |
| v6 | Die Felder von v1, umsortiert mit den höchstwertigen Zeitbits zuerst | Ja | Umstieg eines v1-Systems auf sortierbare IDs |
| v7 | 48-Bit-Unix-Zeitstempel in Millisekunden plus Zufallsbits | Ja | Primärschlüssel, Events, Logs |
Welche Version du nehmen solltest: v7 für neue Datenbankschlüssel, v4 für zufällige IDs, die nichts preisgeben. Zufällige v4-Schlüssel landen an beliebigen Stellen eines B-Baum-Index, was bei wachsenden Tabellen zu Page Splits und schlechter Cache-Nutzung führt. Ein v7-Schlüssel beginnt mit der Zeit, neue Zeilen werden also nahe am Ende des Index angehängt und liegen dicht bei ihren Nachbarn. Der Preis: Wer eine v7-UUID sieht, kann ablesen, wann sie erstellt wurde.
Version 2 (DCE Security) wird praktisch nie verwendet, und Version 8 ist ein frei belegbares Layout für herstellerspezifische Verfahren. Ein Hinweis zu Datenbanken: SQL Server sortiert uniqueidentifier-Werte ab der letzten Gruppe, dort bringt v7 ohne Zusatzaufwand also keinen Vorteil für den Index.
Sechs der 128 Bits einer v4-UUID sind durch Version und Variante festgelegt. Bleiben 122 Zufallsbits, also rund 5,3 × 10^36 mögliche Werte. Das Geburtstagsparadoxon macht die Größenordnung greifbar:
Die Rechnung stimmt nur, wenn die Bits wirklich zufällig sind. Duplikate entstehen in der Praxis durch schwache Generatoren wie Code-Schnipsel auf Basis von Math.random, durch Bugs, die einen Wert wiederverwenden, und durch Testdaten, die zwischen Umgebungen kopiert werden. Diese Seite nutzt crypto.randomUUID() und crypto.getRandomValues(), die kryptografisch sichere Zufallsquelle des Browsers. Für v7 folgt sie dem Zählerverfahren aus RFC 9562, sodass auch UUIDs aus derselben Millisekunde eindeutig und in der richtigen Reihenfolge bleiben.
Die meisten Sprachen und Datenbanken bringen eine UUID-Funktion mit, für v4 brauchst du also selten eine Bibliothek. Eingebaute v7-Unterstützung ist neuer, prüf also deine Version.
crypto.randomUUID(); // v4, nur in sicheren Kontexten (HTTPS)
import { randomUUID } from "node:crypto"; // Node.jsimport uuid
uuid.uuid4() # v4
uuid.uuid7() # v7, ab Python 3.14SELECT gen_random_uuid(); -- PostgreSQL 13+, v4
SELECT uuidv7(); -- PostgreSQL 18+, v7
SELECT UUID(); -- MySQL, liefert eine UUID der Version 1Guid.NewGuid(); // C#, v4
Guid.CreateVersion7(); // C#, v7, ab .NET 9
UUID.randomUUID(); // Java, v4uuidgen # zufällige v4; macOS gibt Großbuchstaben aus
uuidgen | tr '[:upper:]' '[:lower:]'In MySQL speichert UUID_TO_BIN(UUID(), 1) den Wert in 16 Bytes und tauscht die Zeitfelder, damit indizierte v1-Werte besser beieinanderliegen. Für v7 in JavaScript exportiert das Paket uuid auf npm eine Funktion v7().
UUIDs lösen erstaunlich viele Testprobleme, weil sie eindeutig sind, ohne dass sich Testläufe untereinander abstimmen müssen:
Wenn ein Test an einem bestimmten Datensatz scheitert, füg dessen ID oben in den Validator ein. Eine v7- oder v1-ID verrät, wann der Datensatz entstanden ist, und grenzt damit oft das Deployment oder den Testlauf ein, der ihn erzeugt hat.