UUID-Generator
Einleitung
Der Toollect UUID-Generator ist ein browserbasiertes Tool, das universell eindeutige Kennungen (UUIDs, auch bekannt als GUIDs) aller acht Standardversionen – v1 bis v8 – erzeugt. Ob Sie zufällige Kennungen für Webformulare, zeitgeordnete Schlüssel für Datenbankeinträge, deterministische namensbasierte IDs für verteilte Systeme oder benutzerdefinierte UUIDs für die Legacy-Integration benötigen, dieses Tool deckt das gesamte Spektrum ab, ohne dass eine Softwareinstallation oder serverseitige Verarbeitung erforderlich ist.
UUIDs sind einer der am weitesten verbreiteten Kennungsstandards in der Softwareentwicklung und werden überall eingesetzt – von Datenbank-Primärschlüsseln und API-Ressourcenkennungen bis hin zu verteiltem Tracing und Sitzungstoken. Der Toollect UUID-Generator vereint alle UUID-Versionen in einer einzigen Oberfläche, sodass Sie die passende Variante auswählen und mit einem Klick sofort generieren können.
Die gesamte Generierung erfolgt vollständig in Ihrem Browser unter Verwendung der Web Crypto API. Es werden keine Daten über das Netzwerk übertragen, keine Cookies gesetzt und keine Kennungen protokolliert. Das Tool funktioniert offline nach dem ersten Seitenaufruf und ist mit allen modernen Browsern und Geräten kompatibel.
Anwendungsfälle
Verschiedene UUID-Versionen dienen unterschiedlichen architektonischen Anforderungen. Die Wahl der richtigen Version hängt von Ihren Anforderungen an Sortierung, Determinisimus, Datenschutz und Systemkoordination ab.
Datenbank-Primärschlüssel
UUIDs machen eine zentrale Sequenz für die Generierung von Primärschlüsseln über verteilte Datenbankinstanzen hinweg überflüssig. UUID v4 ist die einfachste Wahl, aber UUID v6 und v7 bieten eine Zeitsortierung, die die B-Baum-Indexfragmentierung in Datenbanken wie PostgreSQL und MySQL erheblich reduziert. Für Systeme, die sowohl globale Eindeutigkeit als auch schnelle Schreibleistung benötigen, ist v7 die moderne empfohlene Wahl.
Kennungen für verteilte Systeme
Mikrodienste und verteilte Systeme generieren Kennungen oft unabhängig auf verschiedenen Knoten. UUID v1 enthält eine Knotenkennung (abgeleitet von der MAC-Adresse) und eine Taktsequenz, wodurch die IDs jedes erzeugenden Knotens ohne Koordination von Natur aus eindeutig sind. UUID v4 und v7 sind aufgrund ihrer Einfachheit ebenfalls für dieses Szenario beliebt.
Deterministische namensbasierte IDs
Wenn die gleiche Eingabe immer die gleiche UUID erzeugen soll – zum Beispiel eine stabile Kennung aus einer Benutzer-E-Mail, einer Ressourcen-URL oder einem namespace-qualifizierten Namen – bieten UUID v3 (MD5-basiert) und v5 (SHA-1-basiert) Determinisimus. Dies ist nützlich für inhaltsadressierbaren Speicher, Entitätsidentität in Event Sourcing und die Migration von Legacy-Daten ohne Änderung der Kennungen.
API-Ressourcenkennungen
Die Offenlegung automatisch inkrementierender Ganzzahlen in API-URLs gibt Informationen über die Menge und Reihenfolge von Ressourcen preis. UUIDs bieten undurchsichtige Kennungen, die keine internen Systeminformationen preisgeben. UUID v4 ist die häufigste Wahl für REST-API-Ressourcenpfade. Die Großschreibungs- und Bindestrich-Optionen des Tools erleichtern die Anpassung von UUIDs an verschiedene URL- und Formatierungskonventionen.
Benutzerdefinierte und Legacy-Systeme
UUID v2 (DCE-Sicherheit) fügt lokale Benutzer- und Gruppenkennungen für Sicherheitskontexte auf Betriebssystemebene hinzu. UUID v8 erlaubt benutzerdefinierte Feldlayouts für Systeme, die bestimmte Datenbits einbetten müssen, während das Standard-UUID-Format erhalten bleibt. Diese Versionen sind Nischen, aber für spezielle Integrationsszenarien wertvoll.
Funktionsweise
Der UUID-Generator arbeitet vollständig clientseitig. Wenn Sie eine Version auswählen und auf Generieren klicken, ruft das Tool den entsprechenden Algorithmus mit JavaScript und der Web Crypto API des Browsers auf.
Für zufallsbasierte UUIDs (v4) ruft das Tool crypto.getRandomValues() auf, um kryptografisch sichere Zufallsbytes zu erzeugen, und formatiert sie dann in das Standard-UUID-Layout mit den korrekten Versions- und Variantenbits. Für zeitbasierte UUIDs (v1, v2, v6, v7) liest das Tool den aktuellen Zeitstempel von der Systemuhr und kombiniert ihn mit zufälligen Taktsequenz- und Knotenbytes. Für namensbasierte UUIDs (v3, v5) hasht das Tool einen Namespace und einen Namen mit MD5 oder SHA-1 über die SubtleCrypto API und extrahiert dann 128 Bits in das Standard-UUID-Format.
UUID-Format
Eine UUID ist ein 128-Bit-Wert, der als 36-stellige Zeichenfolge im Format xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx angezeigt wird, wobei jedes x eine hexadezimale Ziffer ist. Die 128 Bits sind in folgende Felder strukturiert:
| Feld | Bits | Zweck |
|---|---|---|
time_low |
32 | Niedrige 32 Bits des Zeitstempels (v1, v2, v6) |
time_mid |
16 | Mittlere 16 Bits des Zeitstempels |
time_hi_and_version |
16 | Hohe 12 Bits des Zeitstempels + 4-Bit-Version |
clock_seq_hi_and_reserved |
8 | Hohe 6 Bits der Taktsequenz + 2 Variantenbits |
clock_seq_low |
8 | Niedrige 8 Bits der Taktsequenz |
node |
48 | Knotenkennung (MAC-Adresse oder zufällig) |
Das Versions-Nibble (Bits 48-51, das höchstwertige Nibble der dritten Gruppe) identifiziert den Algorithmus, der die UUID erzeugt hat: 0001 (v1), 0010 (v2), 0011 (v3), 0100 (v4), 0101 (v5), 0110 (v6), 0111 (v7), 1000 (v8). Dies ist die 4, die Sie in einer standardmäßigen UUID v4 wie 550e8400-e29b-41d4-a716-446655440000 sehen.
Die Variantenbits (Bits 64-65, die beiden höchstwertigen Bits des ersten Bytes der vierten Gruppe) geben die UUID-Variante an. RFC 9562 spezifiziert Variante 10xxxxxx (Bits 64-65 = 10), was bedeutet, dass das erste Zeichen der vierten Gruppe immer 8, 9, a oder b ist.
Beispiel für das binäre Layout
Die 128-Bit-Struktur einer UUID lässt sich am besten visuell verstehen. Am Beispiel einer konkreten UUID v4 550e8400-e29b-41d4-a716-446655440000 sehen Sie, wie die Bits auf die einzelnen Gruppen und Felder abgebildet werden:
Gruppe: 1 2 3 4 5
Hex: 550e8400 e29b 41d4 a716 446655440000
Binär: [32 bits] [16 bits] [16 bits] [16 bits] [48 bits]
Versions-Nibble (Gruppe 3, hohes Nibble):
550e8400-e29b-4 1d4-a716-446655440000
^
version = 0100 (v4)
Variantenbits (Gruppe 4, hohes Byte):
550e8400-e29b-41d4- a 716-446655440000
^
variant = 10xxxxxx
Binäre Aufschlüsselung der Gruppen 3-4:
group 3 (16 bits) group 4 start (8 bits)
0100 0001 1101 0100 1010 0111
└─┘ └─┘
ver=0100 (v4) variant | clock_seq_hi
10
Für UUID v7 kodieren die ersten 48 Bits den Unix-Millisekunden-Zeitstempel:
018f3a6e-1a2b- 7 bcd-8a1b-2c3d4e5f6789
^
version = 0111 (v7)
groups 1-2: 48-bit Unix ms timestamp
0000 0001 1000 1111 0011 1010 0110 1110 0001 1010 0010 1011
group 3 high nibble:
0111 = version 7
Das hohe Byte der vierten Gruppe (a im obigen Beispiel) enthält die Variantenbits. Da die Variante 10 ist, liegt dieses Byte immer im Bereich 1000 0000 (0x80) bis 1011 1111 (0xBF), was hexadezimal den Zeichen 8, 9, a oder b als erstem Zeichen der vierten Gruppe entspricht.
UUID-Versionen erklärt
Die folgende Tabelle fasst die acht Standard-UUID-Versionen auf einen Blick zusammen:
| Version | Algorithmus | Primäre Eingabe | Deterministisch | Sortierbar | Typische Verwendung |
|---|---|---|---|---|---|
| v1 | Zeitbasiert + Knoten | Zeitstempel, Taktsequenz, MAC | Nein | Ja (Zeit) | Verteilte Systeme, Legacy-Zeit-IDs |
| v2 | DCE-Sicherheit | Zeitstempel, POSIX UID/GID | Nein | Ja (Zeit) | DCE-Umgebungskennungen (Nische) |
| v3 | MD5-Hash | Namespace + Name | Ja | Nein | Namensbasierte IDs, wo MD5 ausreicht |
| v4 | Zufall | 122 Zufallsbits | Nein | Nein | Allgemeine Kennungen |
| v5 | SHA-1-Hash | Namespace + Name | Ja | Nein | Namensbasierte Kennungen (empfohlen über v3) |
| v6 | Neu angeordnet zeitbasiert | Zeitstempel (Zeit hoch zuerst) | Nein | Ja (Zeit) | Zeitgeordnete Datenbankschlüssel |
| v7 | Unix-Zeitstempel + Zufall | Unix-ms-Zeitstempel + Zufall | Nein | Ja (ms) | Moderne zeitgeordnete Kennungen |
| v8 | Benutzerdefiniert | Benutzerdefinierte Felder | Abhängig | Abhängig | Benutzerdefinierte experimentelle oder proprietäre Formate |
UUID v1 – Zeitbasiert
UUID v1 kombiniert einen 60-Bit-Zeitstempel (100-Nanosekunden-Intervalle seit dem 15. Oktober 1582), eine 14-Bit-Taktsequenz (zur Erkennung von Uhrzeit-Rücksetzungen) und eine 48-Bit-Knotenkennung (traditionell von der MAC-Adresse abgeleitet). Dadurch erhält jeder erzeugende Knoten ohne Koordination einen eindeutigen Kennungsraum.
Der Zeitstempel ist mit niedrigen, mittleren und hohen Teilen über die ersten drei Gruppen der UUID verteilt. Dieses nicht-sequentielle Layout bedeutet, dass v1-UUIDs zeitlich sortierbar sind, aber nicht in einer datenbankfreundlichen monotonen Reihenfolge – v6 und v7 beheben dieses Problem.
UUID v2 – DCE-Sicherheit
UUID v2 übernimmt das Zeitstempel- und Taktsequenz-Layout von v1, ersetzt aber das 48-Bit-Knotenfeld durch eine 32-Bit-POSIX-Benutzer-ID (UID) oder Gruppen-ID (GID) sowie eine 6-Bit-Lokaldomanienkennung. Die verbleibenden 10 Bits des Knotenfelds und 2 Bits der Taktsequenz werden für die lokale Domäne und ihre Struktur umgenutzt:
| Feld | Bits | Quelle |
|---|---|---|
| Zeitstempel | 60 | Gleiche Epoche wie v1 (100 ns seit 1582-10-15) |
| Taktsequenz | 6 | Standard, von 14 Bits reduziert |
| Lokale Domäne | 6 | Identifiziert die UID-Domäne (POSIX, DCE usw.) |
| Lokale Kennung | 32 | POSIX-UID- oder GID-Wert |
UUID v2 ist im DCE 1.1: Remote Procedure Call Standard spezifiziert, nicht im Kern-RFC-9562-UUID-Standard. Es wird außerhalb von Legacy-DCE-Umgebungen selten verwendet, und die meisten modernen UUID-Generatoren lassen es entweder weg oder fügen es nur der Vollständigkeit halber hinzu. Wenn Sie ein neues System aufbauen, verwenden Sie stattdessen v4, v7 oder v5.
UUID v3 – MD5-namensbasiert
UUID v3 generiert eine deterministische UUID aus einer Namespace-UUID und einer Namenszeichenfolge. Der Prozess verkettet die Namespace- und Namensbytes, berechnet einen MD5-Hash und nimmt die ersten 128 Bits als UUID. Der gleiche Namespace und Name erzeugen immer die gleiche v3-UUID, was sie für die Inhaltsadressierung und stabile Kennungen geeignet macht.
Einen Vergleich der beiden namensbasierten Versionen finden Sie im Abschnitt UUID v3 vs. v5.
UUID v4 – Zufall
UUID v4 verwendet 122 zufällig generierte Bits plus 6 feste Bits (4 für das Versions-Nibble, 2 für die Variante). Dies ist die am weitesten verbreitete UUID-Version, die von den meisten Standardbibliotheken der Programmiersprachen direkt unterstützt wird. Der Toollect UUID-Generator verwendet crypto.getRandomValues(), um kryptografisch sichere Zufälligkeit zu gewährleisten, wodurch die Ausgabe für sicherheitsrelevante Kontexte wie Sitzungstoken geeignet ist.
Die Wahrscheinlichkeit einer Kollision bei einer Milliarde generierter v4-UUIDs liegt bei etwa 1 zu 5,3 × 10²¹ – für alle praktischen Zwecke vernachlässigbar.
UUID v5 – SHA-1-namensbasiert
UUID v5 ist das Gegenstück zu v3 und verwendet SHA-1 anstelle von MD5 für den zugrunde liegenden Hash. Es bietet die gleichen Determinisimus-Garantien (gleicher Namespace + Name = gleiche UUID) mit einem kollisionsresistenteren Hash-Algorithmus. Für neue Systeme, die namensbasierte UUIDs benötigen, empfiehlt RFC 9562 v5 gegenüber v3.
Den detaillierten Vergleich finden Sie im Abschnitt UUID v3 vs. v5.
UUID v6 – Neu angeordnet zeitbasiert
UUID v6 ordnet den v1-Zeitstempel neu an, indem die höchstwertigen Zeitbits an die erste Stelle gesetzt werden. Dadurch sind v6-UUIDs bei lexikografischer Sortierung monoton steigend, im Gegensatz zu v1, bei dem der Zeitstempel über nicht benachbarte Felder verteilt ist. UUID v6 ist ein moderner Ersatz für v1 in Umgebungen, in denen zeitgeordnete Datenbankindizes oder sortierte Speicherung wichtig sind.
UUID v7 – Unix-Zeitstempel + Zufall
UUID v7 verwendet einen 48-Bit-Unix-Millisekunden-Zeitstempel, gefolgt von 74 Zufallsbits. Der Zeitstempel belegt die höchstwertigen Bits, wodurch v7-UUIDs nach Erstellungszeit sortierbar sind – ideal für Datenbank-Primärschlüssel, bei denen die B-Baum-Indexleistung eine Rolle spielt. UUID v7 ist einfacher als v1 oder v6, da es keine MAC-Adressen, Taktsequenzen oder 100-ns-Epochenumrechnungen benötigt.
Für neue Systeme, die zeitgeordnete UUIDs benötigen, ist v7 in der Regel die beste Wahl: es bietet Millisekunden-genaue Sortierung, breite Zufälligkeit und eine unkomplizierte Implementierung.
UUID v8 – Benutzerdefiniert
UUID v8 reserviert den Versions-8-Kennungsraum für experimentelle oder proprietäre UUID-Formate. Die einzigen festen Bits sind das 4-Bit-Versions-Nibble (1000) in den Bits 48-51 und die 2-Bit-Variante (10) in den Bits 64-65 – die restlichen 122 Bits sind für jedes benutzerdefinierte Feldlayout frei.
| Feld | Bits | Einschränkung |
|---|---|---|
| Benutzerdefinierter Inhalt | 48 | Bits 0-47 (Gruppen 1-2), freies Format |
| Version | 4 | Fixiert auf 1000 |
| Benutzerdefinierter Inhalt | 12 | Bits 52-63 (Ende von Gruppe 3), freies Format |
| Variante | 2 | Fixiert auf 10 |
| Benutzerdefinierter Inhalt | 62 | Bits 66-127 (Gruppen 4-5), freies Format |
Häufige Verwendungen von v8 umfassen das Einbetten eines firmenspezifischen Präfix, die Kombination eines gekürzten Zeitstempels mit einem Sequenzzähler oder die Kodierung einer Legacy-Kennung in das UUID-Format bei gleichzeitiger Wahrung der Standardformat-Kompatibilität. Ein System könnte beispielsweise die ersten 32 Bits als Mandanten-ID, die nächsten 32 Bits als Millisekunden-Zeitstempel und die restlichen 64 Bits als zufälliges Suffix zuweisen – alles in einem Format, das jeder Standard-UUID-Parser ohne Änderung lesen kann.
Das v8-Format ist nicht bei der IANA registriert und bietet keine Interoperabilitätsgarantien zwischen Systemen. Es ist ein privater Nutzungsraum für Fälle, in denen Standard-UUID-Versionen nicht zum erforderlichen Datenlayout passen.
UUID v3 vs. v5
Sowohl UUID v3 als auch v5 generieren deterministische Kennungen aus einer Namespace-UUID und einem Namen, unterscheiden sich jedoch in ihrem Hash-Algorithmus:
| Aspekt | UUID v3 | UUID v5 |
|---|---|---|
| Hash-Algorithmus | MD5 (128 Bit) | SHA-1 (160 Bit, auf 128 gekürzt) |
| Kollisionsresistenz | Niedriger – MD5 gilt als kryptografisch gebrochen | Höher – keine praktischen Kollisionsangriffe |
| Leistung | Etwas schneller (MD5 vs. SHA-1) | Etwas langsamer |
| Standardempfehlung | Nur für v3-Rückwärtskompatibilität | RFC 9562 empfiehlt v5 für neue Systeme |
| Interoperabilität | Erforderlich, wenn bestehendes System v3 verwendet | Erforderlich, wenn bestehendes System v5 verwendet |
Der Toollect UUID-Generator enthält vier von RFC 9562 definierte vordefinierte Standard-Namespaces: DNS (6ba7b810-9dad-11d1-80b4-00c04fd430c8), URL (6ba7b811-9dad-11d1-80b4-00c04fd430c8), OID (6ba7b812-9dad-11d1-80b4-00c04fd430c8) und X.500 (6ba7b814-9dad-11d1-80b4-00c04fd430c8). Sie können auch einen benutzerdefinierten Namespace im Standard-UUID-Format für nicht standardmäßige Namespaces angeben.
Verwendung
Die Verwendung des Toollect UUID-Generators erfordert keine Einrichtung oder Registrierung. Die Oberfläche ist in zwei Bedienfelder unterteilt – eines für UUID v1/v2/v4/v6/v7/v8 (sofortige Generierung) und eines für UUID v3/v5 (namensbasierte Generierung).
Block 1 – Standard-UUIDs (v1, v2, v4, v6, v7, v8)
- Wählen Sie die UUID-Version aus dem Dropdown-Menü. Die Voreinstellung ist v4.
- Klicken Sie auf „Generieren" oder drücken Sie die Eingabetaste. Eine neue UUID erscheint sofort im Ausgabefeld.
- Schalten Sie bei Bedarf die Formatierungsoptionen um:
- Großbuchstaben: Wandelt die Ausgabe in Großbuchstaben um.
- Keine Bindestriche: Entfernt die Bindestriche und erzeugt eine kompakte 32-Zeichen-Folge.
- Kopieren Sie das Ergebnis durch Klicken auf die Schaltfläche „Kopieren".
Das Umschalten des Versions-Dropdowns löst eine automatische Neugenerierung aus, sodass ein Wechsel von v4 zu v7 sofort eine neue Kennung erzeugt.
Block 2 – Namensbasierte UUIDs (v3, v5)
- Wählen Sie v3 oder v5 aus dem Versions-Dropdown im namensbasierten Bedienfeld.
- Wählen Sie einen Namespace aus, indem Sie eine der vordefinierten Optionen (DNS, URL, OID, X.500) oder Benutzerdefiniert auswählen.
- Geben Sie bei Verwendung eines benutzerdefinierten Namespace eine gültige UUID in das Textfeld ein. Das Tool validiert das Format und zeigt einen Fehler an, wenn die UUID fehlerhaft ist.
- Geben Sie den Namen in das Namenseingabefeld ein. Die UUID wird bei jeder Eingabe automatisch neu generiert.
- Schalten Sie die Großschreibungs- und Bindestrich-Optionen um und kopieren Sie das Ergebnis wie in Block 1.
Das namensbasierte Bedienfeld generiert UUIDs bei jeder Eingabeänderung – es gibt keine separate Generierungsschaltfläche für dieses Bedienfeld.
Tutorial
Dieses Tutorial führt Sie von der Öffnung des Tools bis zum Kopieren der endgültigen UUID durch drei häufige Szenarien.
Szenario 1: Generieren einer UUID v4 für ein Webformular
- Öffnen Sie das Tool in Ihrem Browser. Die UUID-Generator-Oberfläche zeigt zwei Bedienfelder.
- Stellen Sie in Block 1 sicher, dass das Versions-Dropdown auf v4 (Standard) eingestellt ist.
- Klicken Sie auf „Generieren". Eine UUID v4 erscheint, z.B.
550e8400-e29b-41d4-a716-446655440000. - Klicken Sie auf „Kopieren", um die UUID in die Zwischenablage zu kopieren, und fügen Sie sie in Ihr Webformular oder Ihre API-Anfrage ein.
- Schalten Sie „Großbuchstaben" um und klicken Sie erneut auf „Generieren", um
550E8400-E29B-41D4-A716-446655440000zu erzeugen. - Schalten Sie „Keine Bindestriche" um, um
550e8400e29b41d4a716446655440000für kompakte Speicherung oder URL-Parameter zu erzeugen.
Szenario 2: Generieren einer zeitgeordneten UUID v7 für einen Datenbank-Primärschlüssel
Angenommen, Sie entwerfen eine Tabelle in PostgreSQL, die global eindeutige Primärschlüssel ohne zentrale Sequenz benötigt, aber auch eine gute Schreibleistung wünscht.
- Wählen Sie v7 aus dem Versions-Dropdown von Block 1. Das Ausgabefeld zeigt sofort eine neue v7-UUID an, z.B.
018f3a6e-1a2b-7bcd-8a1b-2c3d4e5f6789. - Beachten Sie die ersten Zeichen – UUID v7 beginnt mit einem Unix-Millisekunden-Zeitstempel, daher zeigen aufeinanderfolgende Generierungen steigende Werte in den ersten Gruppen.
- Generieren Sie mehrere UUIDs in schneller Folge und beobachten Sie, dass die Werte monoton steigen: jede neue UUID beginnt mit einem größeren oder gleichen Präfix als die vorherige.
- Kopieren Sie die Kennung für Ihre
INSERT-Anweisung:INSERT INTO users (id, name) VALUES ('018f3a6e-1a2b-7bcd-8a1b-2c3d4e5f6789', 'Alice');
Szenario 3: Generieren einer deterministischen UUID v5 aus einer Ressourcen-URL
Stellen Sie sich vor, Sie haben ein Content-Management-System, in dem jeder Artikel durch seine URL identifiziert wird, und Sie benötigen eine stabile UUID, die sich zwischen Bereitstellungen nicht ändert.
- Stellen Sie in Block 2 die Version auf v5 ein.
- Wählen Sie den URL-Namespace aus. Dies verwendet
6ba7b811-9dad-11d1-80b4-00c04fd430c8, den Standard-Namespace für URL-basierte UUIDs. - Geben Sie die Artikel-URL in das Namensfeld ein, z.B.
https://example.com/articles/uuid-guide. - Die UUID erscheint automatisch – jedes Mal, wenn Sie dieselbe URL mit dem URL-Namespace eingeben, erhalten Sie dieselbe UUID.
- Testen Sie den Determinisimus: Wählen Sie stattdessen den DNS-Namespace und beobachten Sie, dass sich die UUID ändert. Wechseln Sie zurück zu URL – die ursprüngliche UUID erscheint wieder.
Profi-Tipps
Meistern Sie diese fortgeschrittenen Techniken, um das Beste aus dem Toollect UUID-Generator herauszuholen:
-
Verwenden Sie v7 anstelle von v1 für Datenbank-Primärschlüssel: UUID v7 sortiert ab den höchstwertigen Bits nach Millisekunden-Zeitstempel und bietet Ihnen eine B-Baum-freundliche monotone Reihenfolge ohne die Komplexität von MAC-Adressen oder Taktsequenzverwaltung. Beginnen Sie für neue Projekte, die zeitgeordnete UUIDs benötigen, mit v7.
-
Bevorzugen Sie v5 gegenüber v3 für namensbasierte UUIDs: Verwenden Sie immer UUID v5, es sei denn, Sie müssen mit einem System interagieren, das v3 verwendet. SHA-1 bietet mehr Kollisionssicherheit als MD5 bei vernachlässigbarem Leistungsunterschied. Das Tool verwendet aus diesem Grund standardmäßig v5 im namensbasierten Bedienfeld.
-
Entfernen Sie Bindestriche für URL-Parameter: Schalten Sie „Keine Bindestriche" um, wenn Sie UUIDs in URL-Pfaden oder Abfrageparametern verwenden. Ohne Bindestriche wird eine UUID zu einer 32-stelligen Hexadezimalzeichenfolge, die keine URL-Kodierung erfordert und in Routensegmenten optisch sauberer ist.
-
Verwenden Sie vordefinierte Namespaces für konsistente systemübergreifende Kennungen: Die Namespaces DNS, URL, OID und X.500 sind in RFC 9562 standardisiert. Ihre Verwendung stellt sicher, dass jeder RFC-konforme UUID-Generator für denselben Namen dieselbe v3- oder v5-UUID erzeugt. Dies ist für die systemübergreifende Kennungsvereinbarung unerlässlich.
-
Benutzerdefinierter Namespace mit einer festen v4-UUID: Wenn Sie Ihren eigenen Namespace für v3/v5-UUIDs erstellen, generieren Sie einmal eine UUID v4, speichern Sie sie in Ihrer Konfiguration und verwenden Sie sie wieder. Dies garantiert, dass alle Kennungen innerhalb Ihres benutzerdefinierten Namespace von jedem anderen Namespace verschieden sind.
-
Batch-Generierung durch mehrmaliges Klicken: Für kleine Stapel erzeugt schnelles aufeinanderfolgendes Klicken auf „Generieren" unterschiedliche UUIDs. Verwenden Sie für die Massengenerierung die unten beschriebene Befehlszeilen- oder programmatische Methode.
Häufige UUID-Irrtümer
Mehrere weit verbreitete Annahmen über UUIDs sind ungenau oder irreführend. Das Verständnis der Nuancen hilft Ihnen, bessere Architekturentscheidungen zu treffen.
„UUIDs sind 100 % garantiert eindeutig." Kein Kennungssystem kann absolute Garantien bieten, aber korrekt verwendete UUIDs bieten eine astronomisch hohe Kollisionsresistenz. Für UUID v4 beträgt die Wahrscheinlichkeit mindestens einer Kollision bei einer Milliarde generierter IDs etwa 1 zu 10¹⁴. Für zeitbasierte Versionen (v1, v6, v7) erfordern Kollisionen über verschiedene Knoten hinweg gleichzeitige Uhrenrücksetzungen auf mehreren Maschinen. Die praktische Kollisionsrate bei allen korrekt implementierten UUIDs ist praktisch null.
„UUID v4 ist immer die beste Wahl." UUID v4 ist am vielseitigsten und für die meisten Anwendungen in Ordnung, aber nicht für alle Szenarien optimal. Bei Datenbank-Primärschlüsseln verursacht v4's zufällige Verteilung Seitenaufteilungen und Schreibverstärkung in B-Baum-Indizes. UUID v7 bietet eine Zeitsortierung, die Indizes effizienter verwaltet. Für deterministische Kennungen, die aus einem Namen reproduzierbar sein müssen, ist v3 oder v5 die einzig richtige Wahl.
„UUIDs sind vollständig zufällig." Nur UUID v4 ist vollständig zufällig (122 Bit Entropie). UUID v1, v2, v6 und v7 betten Zeitstempel ein, was sie teilweise vorhersagbar macht – Informationen, die durch die Kennung preisgegeben werden könnten. UUID v3 und v5 sind für eine gegebene Eingabe deterministisch. Wenn Unvorhersagbarkeit eine Anforderung ist (Sicherheitstoken, Sitzungskennungen), verwenden Sie v4 mit der Web Crypto API.
„Alle UUIDs haben das gleiche Format." Alle RFC-9562-UUIDs teilen das 36-stellige 8-4-4-4-12-Hexadezimalformat, aber die interne Struktur unterscheidet sich radikal zwischen den Versionen. Eine UUID v1 bettet MAC-Adresse und Zeitstempelbits ein; UUID v4 ist reiner Zufall; UUID v7 kombiniert einen Zeitstempel mit Zufallsbits. Sie können die Version am 13. Zeichen erkennen (4 = v4, 7 = v7 usw.) und die Variante am 17. Zeichen (8, 9, a oder b).
„UUIDs verlangsamen die Datenbankleistung." Dies traf teilweise auf ältere Datenbankversionen und als ASCII-Strings gespeicherte UUID v4 zu. Moderne Datenbanken (PostgreSQL mit dem uuid-Typ, MySQL 8+ mit UUID_TO_BIN, SQL Server) speichern UUIDs als 16-Byte-Binärwerte mit nativer Indexunterstützung. UUID v7 mildert die Indexfragmentierung durch zeitgeordnete Generierung weiter ab. Der Leistungsunterschied zu automatisch inkrementierenden Ganzzahlen ist für die meisten Arbeitslasten vernachlässigbar.
Alternativen
Neben dem Toollect UUID-Generator gibt es mehrere Alternativen, die für unterschiedliche Arbeitsabläufe geeignet sind.
| Tool / Methode | Beste Verwendung | Einschränkungen |
|---|---|---|
| Toollect UUID-Generator | Browserbasierte Generierung, alle v1-v8-Versionen, keine Installation, datenschutzorientiert | Erfordert Internet für den ersten Seitenaufruf, nicht skriptbar |
Unix uuidgen-Befehl |
Terminalbasierte Batch-Generierung, Skripterstellung, Pipeline-Integration | Normalerweise nur v1 und v4; variiert je nach Plattformimplementierung |
| ULID | 26-stellige base32-sortierbare IDs, URL-sicher, groß-/kleinschreibungsunabhängig | Keine Versions-/Variantenbits; nicht UUID-kompatibel; nur 80 Bit Zufälligkeit |
| NanoID | Kurze URL-sichere IDs (Standard 21 Zeichen), konfigurierbares Alphabet und Länge | Keine UUID; kein Standardformat oder Versionierung; Länge variiert je nach Konfiguration |
| Snowflake (Twitter-Stil) | 64-Bit-zeitgeordnete IDs, sehr kompakt, hoher Durchsatz in verteilten Systemen | Erfordert Worker-ID-Koordination; kein UUID-Format; plattformspezifische Implementierungen |
| Online-UUID-Generatoren (z.B. uuidgenerator.net) | Schnelle Offline-Generierung einzelner UUIDs | Nur ein oder zwei Versionen; oft keine kryptografische Zufälligkeit; möglicherweise Datensendung an Server |
PostgreSQL gen_random_uuid() |
Datenbankseitige Generierung bei INSERT | Nur PostgreSQL; normalerweise nur v4; keine v7- oder namensbasierten Versionen ohne Erweiterungen |
Python-uuid-Modul |
Programmatische Generierung in Python-Anwendungen | Erfordert Python-Laufzeit; nicht browserbasiert |
Node.js crypto.randomUUID() |
Serverseitige Node.js-Generierung | Nur Node.js; keine zeitbasierten und namensbasierten Versionen |
Web Crypto API (crypto.randomUUID) |
Browser-native v4-Generierung ohne Abhängigkeiten | Nur v4; keine Formatierungsoptionen oder namensbasierten UUIDs |
Für die meisten Benutzer, die eine sofortige, private Multi-Version-UUID-Generierung ohne Verlassen des Browsers benötigen, bietet der Toollect UUID-Generator das umfassendste Funktionsset.
Datenschutz
Der Toollect UUID-Generator verarbeitet jedes Byte Ihrer Daten vollständig in Ihrem Browser. Keine Daten, die Sie eingeben – Namen, Namespaces oder generierte Kennungen – werden an einen Server übertragen, in einer Datenbank gespeichert oder in einem System protokolliert.
Die gesamte Generierung verwendet die in JavaScript integrierte Web Crypto API (crypto.getRandomValues, crypto.randomUUID, crypto.subtle.digest). Die Tool-Seite enthält keine Analysescripte, Tracking-Pixel, Cookies oder Drittanbieter-Einbettungen. Es werden keine localStorage- oder sessionStorage-Einträge erstellt oder gelesen.
Nach dem ersten Laden der Seite funktioniert der UUID-Generator vollständig offline – generieren Sie Kennungen sogar im Flugmodus ohne Netzwerkaktivität. Sie können dies überprüfen, indem Sie den Netzwerk-Tab in den Entwicklertools Ihres Browsers inspizieren oder die Internetverbindung vollständig trennen.
Fehlerbehebung
| Problem | Wahrscheinliche Ursache | Lösung |
|---|---|---|
| UUID-v4-Ausgabe wiederholt sich zwischen Generationen | crypto.getRandomValues() ist möglicherweise in Testumgebungen nachgeahmt oder nicht verfügbar |
In Produktionsbrowsern gibt crypto.getRandomValues() immer frische Entropie zurück. Testen Sie durch Generieren von zehn UUIDs in Folge – sie sollten sich alle unterscheiden. |
| Namensbasierte UUID (v3/v5) zeigt keine Ausgabe | Namensfeld ist leer oder benutzerdefinierter Namespace ungültig | Stellen Sie sicher, dass das Namensfeld Text enthält. Wenn Sie einen benutzerdefinierten Namespace verwenden, überprüfen Sie, ob es sich um eine gültige UUID im Standardformat handelt (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx). |
| Validierung des benutzerdefinierten Namespace schlägt fehl | UUID-Format ist falsch – fehlende Bindestriche, falsche Länge oder ungültige Hex-Zeichen | Geben Sie den Namespace als vollständige 36-stellige UUID mit Bindestrichen ein. Das Tool validiert das Format vor der Generierung. |
| Kopier-Schaltfläche funktioniert nicht | Die Browser-Zwischenablage-API erfordert einen sicheren Kontext oder eine Benutzergeste | Stellen Sie sicher, dass die Seite über HTTPS bereitgestellt wird. Die Kopier-Schaltfläche verwendet navigator.clipboard.writeText(), was in allen modernen Browsern auf HTTPS-Seiten funktioniert. |
| UUID v1 zeigt unerwartete Werte | Zeitstempel oder Taktsequenz könnten überlaufen | UUID v1 verwendet 100-ns-Ticks seit Oktober 1582. Der Taktzyklus im Jahr 2026 liegt gut im 60-Bit-Bereich (~292 Jahre). Taktsequenzen setzen sich natürlich zurück, wenn die Systemzeit zurückgesetzt wird. |
Browser unterstützt crypto.randomUUID nicht |
Ältere Browserversion | Das Tool fällt intern auf crypto.getRandomValues() zurück. Unterstützt in Chrome 80+, Firefox 75+, Safari 13+, Edge 80+. |
| UUID-v7-Werte sind nicht streng steigend | Zwei Generationen innerhalb derselben Millisekunde erzeugen das gleiche Zeitstempel-Präfix | UUID v7 verwendet Millisekunden-Genauigkeit. Innerhalb derselben Millisekunde teilen sich mehrere Generationen denselben Zeitstempel; das zufällige Suffix ändert sich jedes Mal. Dies ist beabsichtigt und beeinträchtigt die Datenbank-Indexsortierung nicht. |
Technische Spezifikationen
Der Toollect UUID-Generator wurde für Korrektheit, Leistung und Cross-Browser-Kompatibilität entwickelt.
Standardkonformität
| Aspekt | Spezifikation |
|---|---|
| RFC | RFC 9562 (ersetzt RFC 4122) |
| UUID-Format | 128-Bit, xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx |
| Variante | RFC-9562-Variante (10xxxxxx) |
| Zeichensatz | Standardmäßig Kleinbuchstaben, Großbuchstaben umschaltbar |
| Bindestriche | Standardmäßig enthalten, ohne Bindestriche umschaltbar |
Algorithmusdetails pro Version
| Version | Entropiequelle | Generierungszeit |
|---|---|---|
| v1 | performance.now() für Zeitstempel, crypto.getRandomValues() für Taktsequenz und Knoten |
< 1 ms |
| v2 | Wie v1 mit POSIX UID/GID (lokal), Knotenfeld angepasst | < 1 ms |
| v3 | MD5 über crypto.subtle.digest() |
~2-5 ms (async) |
| v4 | crypto.getRandomValues() |
< 1 ms |
| v5 | SHA-1 über crypto.subtle.digest() |
~2-5 ms (async) |
| v6 | Gleicher Zeitstempel wie v1, aber neu angeordnet (Zeit hoch zuerst) | < 1 ms |
| v7 | Date.now() für Zeitstempel, crypto.getRandomValues() für zufälliges Suffix |
< 1 ms |
| v8 | crypto.getRandomValues() für Zufallsbits |
< 1 ms |
Browser-Kompatibilität
| Browser | Mindestversion | Status |
|---|---|---|
| Google Chrome | 80+ | Volle Unterstützung |
| Mozilla Firefox | 75+ | Volle Unterstützung |
| Apple Safari | 13+ | Volle Unterstützung |
| Microsoft Edge | 80+ | Volle Unterstützung |
| Samsung Internet | 13+ | Volle Unterstützung |
| Opera | 67+ | Volle Unterstützung |
Datenschutz & Sicherheit
- Keine Datenübertragung: die gesamte Generierung erfolgt im Browser-Speicher
- Keine Cookies, localStorage oder sessionStorage verwendet
- Keine Analyse- oder Tracking-Scripte auf der Tool-Seite
- Nach dem ersten Seitenaufruf vollständig offline nutzbar
- Keine Registrierung, Anmeldung oder API-Schlüssel erforderlich
- Kryptografisch sichere Zufälligkeit über die Web Crypto API
Funktionen
- Generieren aller UUID-Versionen v1 bis v8, einschließlich zeitbasiert (v1, v6, v7), zufällig (v4), namensbasiert (v3, v5), DCE-Sicherheit (v2) und benutzerdefiniert (v8)
- Kryptografisch sichere Zufallsgenerierung mit der Web Crypto API ohne Netzwerkübertragung
- Umschaltung auf Großbuchstaben und Entfernung von Bindestrichen für kompakte oder anzeigefertige UUIDs
- Namensbasierte UUID-Generierung mit integrierten Namespaces (DNS, URL, OID, X.500) und benutzerdefinierten Namespaces mit Validierung
- 100 % clientseitige Verarbeitung – keine Daten werden an Server gesendet, keine Anmeldung oder Installation erforderlich
- Ein-Klick-Generierung und Kopieren mit sofortigen Ergebnissen in allen modernen Browsern und Geräten