UUID-Generator

Werbung

Generieren Sie universell eindeutige Identifikatoren (UUIDs) für Ihre Anwendungen.

Werbung

Über dieses Werkzeug

Der Universally Unique Identifier (UUID) ist einer der grundlegenden Bausteine der modernen verteilten Datenverarbeitung. Erstmals 1997 durch die DCE-Spezifikation der Open Software Foundation standardisiert und später 2005 als RFC 4122 formalisiert, lösen UUIDs ein trügerisch schwieriges Problem: Wie erstellt man Identifikatoren, die ohne eine zentrale Koordinierungsstelle garantiert einzigartig sind? Die Antwort liegt in Mathematik und Wahrscheinlichkeit. Eine UUID v4 enthält 122 zufällige Bits, was ungefähr 5,3 x 10^36 mögliche Werte ergibt. Um dies in Perspektive zu setzen: Sie könnten jede Sekunde eine Milliarde UUIDs generieren, über 100 Jahre lang, bevor Sie eine 50%-ige Wahrscheinlichkeit einer einzigen Kollision erreichen. Diese mathematische Garantie macht UUIDs zum Rückgrat von Datenbank-Primärschlüsseln, verteilten Nachrichtenwarteschlangen, Sitzungstoken und Microservice-Architekturen weltweit. Dieser Generator unterstützt mehrere Identifikatorformate, die jeweils für spezifische Anwendungsfälle konzipiert sind. UUID v4 ist am weitesten verbreitet und basiert ausschließlich auf Zufälligkeit. UUID v7, definiert im neueren RFC 9562, bettet einen Unix-Millisekunden-Zeitstempel für natürliche chronologische Sortierung ein — ein großer Vorteil für Datenbankindexierung. UUID v1 kombiniert einen 60-Bit-Zeitstempel mit einer Knotenkennung. Über UUIDs hinaus generiert das Tool ULIDs (Universally Unique Lexicographically Sortable Identifiers) mit Crockford Base32 und NanoIDs — kompakte, URL-sichere Identifikatoren, die in Frontend-Anwendungen beliebt sind. Die gesamte Generierung verwendet die Web Crypto API des Browsers und gewährleistet kryptografisch sichere Zufälligkeit. Keine Daten verlassen Ihr Gerät — jeder Identifikator wird vollständig in Ihrem Browser ohne Serverkommunikation erstellt.

Quellen: RFC Editor

Anleitung

  1. Wählen Sie ein Format (UUID v4/v7/v1, ULID oder NanoID) und die Anzahl.
  2. Wählen Sie optional die Formatierung: Großbuchstaben, mit/ohne Klammern oder Bindestriche.
  3. Klicken Sie auf 'UUID Generieren' und kopieren Sie einzelne Ergebnisse oder alle auf einmal.

UUID-Standards und Verteilte Identitat

Der Universally Unique Identifier wurde erstmals in RFC 4122 (2005) standardisiert, obwohl seine Wurzeln bis zum Apollo Network Computing System in den 1980er Jahren und dem Distributed Computing Environment (DCE) der Open Software Foundation zurückreichen. Das grundlegende Problem, das UUIDs losen, ist die Generierung global eindeutiger Identifikatoren ohne zentrale Koordinationsstelle — wesentlich für verteilte Systeme, in denen mehrere Maschinen unabhangig IDs erstellen mussen, die niemals kollidieren. RFC 4122 definierte funf UUID-Versionen für verschiedene Anwendungsfalle. Version 1 bettet einen 60-Bit-Zeitstempel (100-Nanosekunden-Intervalle seit dem 15. Oktober 1582 — der Gregorianischen Kalenderreform) ein, kombiniert mit einem 48-Bit-Knotenidentifikator, der ursprunglich von der MAC-Adresse der Netzwerkkarte abgeleitet würde. Obwohl Einzigartigkeit garantiert würde, gab v1 Hardware-Identitat und Erstellungszeit preis. Die Versionen 3 und 5 sind namensbasiert: Sie hashen einen Namensraum-Identifikator kombiniert mit einem Namen unter Verwendung von MD5 (v3) oder SHA-1 (v5) und erzeugen deterministische UUIDs. Version 4 ersetzte Determinismus durch 122 Bits kryptografischer Zufalligkeit und wurde die am weitesten verbreitete Version. Der neueste Standard, RFC 9562 (2024), fuhrte UUID v7 als empfohlene Wahl für datenbankfreundliche Identifikatoren ein. Version 7 bettet einen 48-Bit-Unix-Millisekunden-Zeitstempel in die hochstwertigen Bits ein, gefolgt von zufalligen Fullbits. Dieses Design erzeugt chronologisch sortierbare Identifikatoren — ein entscheidender Vorteil für B-Tree-Datenbankindizes, bei denen zufallige v4-UUIDs übermassige Seitenaufteilungen verursachen. Benchmarks zeigen, dass v7-UUIDs den Einfugedurchsatz um 20-40% gegenuber v4 verbessern. Die Kollisionswahrscheinlichkeit von UUID v4 wird durch das Geburtstagsparadoxon bestimmt. Mit 122 zufalligen Bits enthalt der Raum 5,3 x 10^36 mögliche Werte. Die Wahrscheinlichkeit, ein Duplikat zu erzeugen, erreicht 50% erst nach etwa 2,71 x 10^18 UUIDs. Konkurrierende Formate umfassen Twitters Snowflake-IDs (64 Bit), ULIDs (128 Bit mit Crockford-Base32-Kodierung), NanoIDs (kompakte URL-sichere Zeichenketten) und Datenbank-Auto-Increment-Sequenzen. Jedes beinhaltet Kompromisse zwischen Einzigartigkeitsgarantien, Sortierbarkeit, Speichergrosse und Koordinationsanforderungen.

Anleitung

  1. Wählen Sie ein Format (UUID v4/v7/v1, ULID oder NanoID) und die Anzahl.
  2. Wählen Sie optional die Formatierung: Großbuchstaben, mit/ohne Klammern oder Bindestriche.
  3. Klicken Sie auf 'UUID Generieren' und kopieren Sie einzelne Ergebnisse oder alle auf einmal.

Methodik

Die UUID v4-Generierung basiert auf der crypto.randomUUID()-Methode des Browsers aus der Web Crypto API, die 128 Bits erzeugt, von denen 122 kryptografisch zufällig sind und 6 für Versions- (4 Bits auf 0100 gesetzt) und Varianten-Marker (2 Bits auf 10 gesetzt) reserviert sind. Dies stellt sicher, dass jede UUID selbstbeschreibend ist — Sie können ihre Version durch Prüfung des 13. hexadezimalen Zeichens identifizieren. UUID v7 bettet einen 48-Bit-Unix-Zeitstempel in Millisekunden in die höchstwertigen Bits ein, gefolgt von zufälligen Füllbits. Dieses Design erzeugt Identifikatoren, die sowohl einzigartig als auch natürlich zeitgeordnet sind, was sie ideal für Datenbank-Primärschlüssel macht, bei denen die B-Tree-Index-Performance wichtig ist. UUID v1 verwendet einen 60-Bit-Zeitstempel mit 100-Nanosekunden-Auflösung seit dem 15. Oktober 1582 (dem Datum der gregorianischen Kalenderreform), eine 14-Bit-Taktsequenz zur Vermeidung von Duplikaten bei Uhranpassungen und eine 48-Bit-Knotenkennung, die zum Schutz der Privatsphäre zufällig generiert wird. ULIDs kodieren einen 48-Bit-Millisekunden-Zeitstempel, gefolgt von 80 zufälligen Bits, dargestellt in Crockford Base32 für kompakte, groß-/kleinschreibungsunabhängige Darstellung. NanoIDs verwenden ein konfigurierbares Alphabet und Länge, standardmäßig 21 Zeichen aus einem URL-sicheren Zeichensatz, was 126 Bits Entropie bietet.

Ihre Ergebnisse verstehen

Jede UUID ist ein 128-Bit-Wert, dargestellt als 32 hexadezimale Zeichen in 5 durch Bindestriche getrennten Gruppen, nach dem Muster 8-4-4-4-12. Das kanonische Format ist xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx, wobei die M-Position (13. Hex-Zeichen) die Version und die N-Position (17. Hex-Zeichen) die Variante angibt. Bei UUID v4 ist M immer '4' und N ist eines von '8', '9', 'a' oder 'b', was die RFC 4122-Konformität bestätigt. Bei UUID v7 ist M '7' und die ersten 12 Hex-Zeichen kodieren den Millisekunden-Zeitstempel, wodurch die Erstellungszeit direkt lesbar wird. UUID v1 setzt M als '1', wobei der Zeitstempel in umgeordneter Reihenfolge über die ersten drei Gruppen aufgeteilt ist. ULIDs werden als 26 Crockford-Base32-Großbuchstaben angezeigt — die ersten 10 kodieren den Zeitstempel und die verbleibenden 16 die Zufälligkeit. NanoIDs erscheinen als kompakte Zeichenketten mit URL-sicheren Zeichen (A-Z, a-z, 0-9, Bindestrich, Unterstrich), ohne inhärente Strukturmarker. Bei der Wahl eines Formats beachten Sie, dass UUIDs mit Klammern in Microsoft-Ökosystemen üblich sind, während strichlose UUIDs Speicherplatz in Datenbanken sparen.

Quellen: RFC Editor

Praktische Beispiele

Datenbank-Primärschlüssel: Verwenden Sie UUID v7 für PostgreSQL- oder MySQL-Tabellen, bei denen die Einfügereihenfolge wichtig ist. Der eingebettete Zeitstempel stellt sequenzielle Schlüsselwerte sicher und vermeidet zufällige I/O-Streuung, die UUID v4 bei geclusterten Indizes verursacht. Microservice-Ereignisverfolgung: Generieren Sie UUID v4 für Korrelations-IDs, die durch Nachrichtenwarteschlangen (Kafka, RabbitMQ) weitergegeben werden. Die reine Zufälligkeit garantiert keine Kollisionen, selbst wenn Tausende von Diensten gleichzeitig IDs erzeugen. Frontend-Sitzungstoken: Verwenden Sie NanoID für kompakte, URL-sichere Sitzungsidentifikatoren in Single-Page-Anwendungen. Mit 21 Zeichen sind sie kürzer als UUIDs bei gleichwertiger Kollisionsresistenz. Dateibenennung und Deduplizierung: Generieren Sie ULIDs für hochgeladene Dateikennungen. Ihre lexikografische Sortierbarkeit bedeutet, dass eine einfache alphabetische Auflistung Dateien in chronologischer Upload-Reihenfolge zeigt.

Tipps und Empfehlungen

Wählen Sie Ihre UUID-Version basierend auf Ihrem Anwendungsfall, anstatt standardmäßig v4 zu verwenden. Wenn Ihre Identifikatoren als Datenbank-Primärschlüssel dienen, bieten UUID v7 oder ULID eine deutlich bessere Einfügeleistung, da ihre zeitgeordnete Natur B-Tree-Indizes sequenziell hält und Seitenaufteilungen und Fragmentierung reduziert. Für verteilte Systeme, in denen mehrere Knoten unabhängig IDs generieren, eliminiert die reine Zufälligkeit von UUID v4 jedes Risiko zeitstempelbasierter Kollisionen. Bei der Arbeit mit URLs oder benutzerorientierten Identifikatoren ist das kompakte 21-Zeichen-Format von NanoID praktischer als eine 36-Zeichen-UUID. Speichern Sie UUIDs immer als ihren nativen 128-Bit-Binärtyp in Datenbanken, wenn verfügbar (z.B. PostgreSQLs uuid-Typ oder MySQLs BINARY(16)) anstatt als VARCHAR(36)-Strings. Dies halbiert den Speicherverbrauch und verbessert die Vergleichsleistung. Beim Debuggen verrät Ihnen die Versionsziffer (Position 13) sofort, welche UUID-Variante Sie betrachten.

Alle Berechnungen werden lokal in Ihrem Browser durchgeführt. Es werden keine Daten an Server gesendet.

Dieses Tool einbetten

Code abrufen

War dieses Tool hilfreich?
Möchten Sie uns mehr erzählen?
0/500
Möchten Sie eine Rückmeldung?
Danke für Ihr Feedback!

Häufig gestellte Fragen

Was ist der Unterschied zwischen UUID v4, v7, v1, ULID und NanoID?
UUID v4 ist vollständig zufällig (am häufigsten). UUID v7 ist zeitgeordnet mit Millisekunden-Zeitstempel—ideal für Datenbanken. UUID v1 verwendet Zeitstempel + MAC-Adresse. ULID ist eine sortierbare 26-Zeichen-ID mit Crockford Base32. NanoID ist eine kompakte 21-Zeichen URL-sichere ID.
Sind die generierten UUIDs wirklich einzigartig?
Ja! UUID v4 hat 122 zufällige Bits mit etwa 5,3×10³⁶ möglichen Kombinationen. Die Wahrscheinlichkeit, zwei identische UUIDs zu generieren, ist astronomisch gering—Sie müssten etwa 100 Jahre lang 1 Milliarde UUIDs pro Sekunde generieren.
Was ist der Unterschied zwischen UUID und GUID?
UUID (Universally Unique Identifier) und GUID (Globally Unique Identifier) sind im Wesentlichen dasselbe. GUID ist Microsofts Begriff für UUID. Beide folgen demselben RFC 4122-Standard und haben dasselbe 128-Bit-Format.
Wann sollte ich UUID v7 statt v4 verwenden?
Verwenden Sie UUID v7, wenn Sie zeitgeordnete Identifikatoren benötigen, insbesondere als Datenbank-Primärschlüssel. UUID v7 (definiert in RFC 9562) bettet einen Unix-Zeitstempel in die ersten 48 Bits ein, wodurch die IDs natürlich nach Erstellungszeit sortierbar sind. Dies verbessert die Einfügeleistung bei B-Baum-Indizes dramatisch, da neue Zeilen immer am Ende angefügt werden und zufällige Seitenaufteilungen vermieden werden. UUID v4 ist rein zufällig und verursacht Indexfragmentierung in Datenbanken. Verwenden Sie v4, wenn die Reihenfolge keine Rolle spielt (API-Token, Sitzungs-IDs, Korrelations-IDs) und v7, wenn Sie zeitlich sortierbare IDs benötigen (Primärschlüssel, Ereignis-IDs, verteilte Protokolle).
Kann eine UUID-Kollision in der Praxis tatsächlich auftreten?
Bei UUID v4 ist die Wahrscheinlichkeit astronomisch gering. Eine v4-UUID hat 122 zufällige Bits und ergibt 5,3 × 10³⁶ mögliche Werte. Um eine 50%ige Chance auf eine einzige Kollision zu haben, müssten Sie etwa 2,71 × 10¹⁸ UUIDs generieren — das sind 2,71 Trillionen. Bei 1 Milliarde UUIDs pro Sekunde wurde dies etwa 86 Jahre dauern. In der Praxis ist das Kollisionsrisiko viel wahrscheinlicher auf einen defekten Zufallszahlengenerator (schlechte Entropiequelle) zurückzuführen als auf mathematische Wahrscheinlichkeit. Die Web Crypto API (crypto.getRandomValues), die dieses Tool verwendet, bietet kryptografisch sichere Zufälligkeit, die für die UUID-Generierung geeignet ist.
Was ist ULID und wann sollte ich es statt UUID verwenden?
ULID (Universally Unique Lexicographically Sortable Identifier) ist ein 128-Bit-Identifikator, der einen 48-Bit-Unix-Millisekunden-Zeitstempel mit 80 Bits Zufälligkeit kombiniert, kodiert als 26-Zeichen-Crockford-Base32-Zeichenkette. ULIDs sind zeitlich sortierbar (wie UUID v7), nicht Groß-/Kleinschreibung-sensitiv und etwas kürzer als das 36-Zeichen-Hex-Format von UUID. Verwenden Sie ULID, wenn Sie menschenfreundliche, sortierbare IDs möchten, die leicht zu kopieren und einzufügen sind. Verwenden Sie UUID, wenn Sie maximale Kompatibilität mit bestehenden Systemen, Datenbanken und Bibliotheken benötigen, die das Standard-8-4-4-4-12-UUID-Format erwarten. UUID v7 bietet ähnliche Zeitsortierungsvorteile bei gleichzeitiger Kompatibilität mit dem UUID-Ökosystem.