UUID-Generator — Manual

Alle Funktionen: UUID v4, v7, v6, v1, v5 und v3, Namespaces, bis 10.000 am Stück, Decoder, sieben Ausgabeformate, NIL/Max und Download.

Zurück zur Übersicht: UUID-Generator · Tool live öffnen: www.jpkc.com/tools/uuid/

Dieses Manual beschreibt den UUID-Generator vollständig: wie die Oberfläche aufgebaut ist, was jede der sechs Versionen erzeugt, wie Namespaces, Massen-Erzeugung, Decoder, Ausgabeformate sowie NIL- und Max-UUID funktionieren und woher die Zufallswerte kommen. Die Oberfläche des Tools ist auf Englisch — die Labels werden hier in ihrer englischen Original-Schreibweise genannt (mit deutscher Erläuterung), damit du dich im echten Interface zurechtfindest.

Aufbau der Oberfläche

Die Bedienung läuft über fünf Tabs am oberen Rand der Karte — vier zum Erzeugen, einer zum Auslesen:

  • v4 Random (aktiv beim Laden)
  • v7 Time-ordered
  • v6 / v1 Time-based (Umschalter zwischen v6 und v1)
  • v5 / v3 Name-based (Umschalter zwischen v5 und v3)
  • Decode (Decoder für vorhandene UUIDs)

Jeder Generator-Tab hat einen kurzen Erklär-Hinweis, die nötigen Eingabefelder, einen eigenen Generate-Knopf und ein Ergebnisfeld. Rechts neben dem Ergebnisfeld sitzen übereinander zwei Knöpfe: Copy (Klemmbrett-Symbol) und Download as .txt (Pfeil nach unten). Das Ergebnisfeld ist reine Anzeige — es lässt sich per Tastatur fokussieren und markieren, aber nicht bearbeiten; auf einer frisch geladenen Seite ist es leer.

Im Fuß der Karte stehen zwei Dinge, die für alle Tabs gelten: das Auswahlfeld Output format (Ausgabeformat) und die beiden Sonderwerte NIL und Max mit je einem Kopier-Knopf.

Die Generate-Knöpfe sind im ausgelieferten HTML deaktiviert und werden erst aktiv, wenn das Skript des Tools geladen ist.

Gemeinsamer Ablauf

Für jede Version gilt derselbe Grundablauf:

  1. Tab wählen (Version).
  2. Bei v4, v7 und v6/v1: Number of UUIDs einstellen (Anzahl), bei v6/v1 zusätzlich die Version wählen. Bei v5/v3: Namespace, Version und die Names angeben (ein Name pro Zeile).
  3. Den Generate-Knopf des Tabs klicken (Generate v4, Generate v7, Generate time-based bzw. Generate name-based).
  4. Optional im Fuß das Output format wechseln — die Anzeige stellt sich sofort um, ohne neu zu erzeugen.
  5. Ergebnis über Copy in die Zwischenablage übernehmen oder über Download as .txt als Datei speichern.

Jeder Tab behält sein eigenes Ergebnis: Wechselst du den Tab und zurück, steht die zuletzt erzeugte Liste noch da.

Die UUID-Versionen im Detail

Version 4: Zufall (v4 Random)

Erzeugt rein zufällige UUIDs (RFC 9562, Version 4). Der Hinweis im Tab lautet „122 random bits from the browser's cryptographic generator. The usual choice when the ID does not need to sort." — v4 ist die übliche Wahl, solange die ID nicht sortierbar sein muss. Es steckt keinerlei Zeit- oder Geräte-Information in der UUID; bis auf die festen Versions- und Variant-Bits sind alle 122 Bits zufällig.

Die Zufallswerte kommen aus dem kryptografisch sicheren Generator des Browsers: Sofern verfügbar, nutzt das Tool die native Funktion crypto.randomUUID(), sonst füllt es 16 Byte über crypto.getRandomValues und setzt die Versions-/Variant-Bits selbst. In beiden Fällen ist die Quelle ein CSPRNG, nicht Math.random.

Eingabe: Number of UUIDs, Knopf: Generate v4.

Version 7: zeitsortiert (v7 Time-ordered)

Erzeugt zeitsortierte UUIDs (RFC 9562, Version 7). Die ersten 48 Bit sind ein Unix-Zeitstempel in Millisekunden (Big-Endian), die übrigen 74 frei nutzbaren Bits (12 Bit rand_a, 62 Bit rand_b) stammen aus dem CSPRNG. Der Tab-Hinweis: „Unix milliseconds + random (RFC 9562). Monotonic: UUIDs from the same millisecond still sort in creation order — good primary keys for databases."

Das Tool erzeugt v7 monoton nach dem Verfahren „monotonic random" aus RFC 9562 (Abschnitt 6.2):

  • In einer neuen Millisekunde zieht es einen frischen 74-Bit-Zufallswert, dessen oberstes Bit auf 0 steht — so bleibt Luft für viele Erhöhungen.
  • Innerhalb derselben Millisekunde erhöht es diesen Wert um einen zufälligen Schritt (1 bis rund 2³¹). Die Folge bleibt dadurch streng aufsteigend und trotzdem schwer zu erraten.
  • Läuft der Wert über, zählt das Tool die Millisekunde logisch um eins weiter. Springt die Systemuhr zurück, behält es den letzten Zeitstempel bei, statt rückwärts zu laufen.

Ergebnis: Auch 10.000 in einem Rutsch erzeugte v7-UUIDs stehen exakt in Erzeugungsreihenfolge und sortieren sich in kanonischer Schreibweise als Text wie als Bytefolge korrekt (Base64-Formen dagegen nicht). Das macht sie zu guten Datenbank-Schlüsseln: Neue Einträge landen am Index-Ende, statt ihn wie zufällige v4-Werte zu zerstreuen. Die Monotonie gilt innerhalb eines Seitenaufrufs; zwischen zwei Browser-Tabs oder Rechnern ordnen nur die Millisekunden.

Eingabe: Number of UUIDs, Knopf: Generate v7.

Version 6 und Version 1: zeitbasiert (v6 / v1 Time-based)

Erzeugt zeitbasierte UUIDs mit Gregorianischem Zeitstempel. Der Tab-Hinweis: „Gregorian timestamp (100 ns), clock sequence and a random node (multicast bit set — no MAC address). v6 sorts by time; v1 only for systems that require it."

Über die Schaltergruppe Version wählst du:

  • v6 (Voreinstellung) — derselbe 60-Bit-Zeitstempel wie bei v1, aber in Big-Endian-Reihenfolge abgelegt: Die UUIDs sortieren sich nach Zeit wie v7 und bleiben feldkompatibel zu v1.
  • v1 — die klassische Feldreihenfolge (niederwertige Zeitbits vorne), nur sinnvoll, wenn ein bestehendes System v1 verlangt.

Gemeinsam für beide:

  • Zeitstempel: 100-Nanosekunden-Intervalle seit dem 15. Oktober 1582, abgeleitet aus der Browser-Uhr. Folgen mehrere UUIDs im selben Takt aufeinander (oder springt die Uhr zurück), zählt das Tool den Zeitstempel um eins weiter. v1 und v6 teilen sich diesen Zähler, die Werte bleiben also eindeutig und aufsteigend; einen Abbruch wegen zu vieler UUIDs pro Zeiteinheit gibt es nicht.
  • Clock-Sequence: 14 Bit, beim Laden der Seite zufällig gewählt.
  • Node: 48 Bit, beim Laden der Seite zufällig gewählt, mit gesetztem Multicast-Bit (RFC 9562, Abschnitt 6.10). Das Tool liest keine MAC-Adresse aus — es wird keine Hardware-Kennung preisgegeben. Innerhalb eines Seitenaufrufs tragen alle v1/v6-UUIDs denselben Node und dieselbe Clock-Sequence; nach einem Neuladen sind beide neu.

Eingaben: Number of UUIDs und Version, Knopf: Generate time-based.

Version 5 und Version 3: namensbasiert (v5 / v3 Name-based)

Erzeugt namensbasierte, deterministische UUIDs (RFC 9562, Version 5 und 3). Der entscheidende Unterschied zu den anderen Versionen: Derselbe Namespace und derselbe Name ergeben immer dieselbe UUID. Der Tab-Hinweis: „Same namespace + name → always the same UUID. v5 hashes with SHA-1, v3 with MD5 (only for compatibility). The name is used exactly as entered, spaces included."

Über die Schaltergruppe Version wählst du das Hash-Verfahren:

  • v5 (SHA-1) (Voreinstellung) — die empfohlene Variante; der Hash läuft über die Web-Crypto-API des Browsers (asynchron).
  • v3 (MD5) — nur zur Kompatibilität mit Systemen, die v3 erwarten. Weil Web Crypto kein MD5 anbietet, bringt das Tool dafür eine eigene MD5-Implementierung mit.

Technisch hängt das Tool die 16 Byte des Namespace und den als UTF-8 kodierten Namen aneinander, bildet darüber den Hash und nimmt dessen erste 16 Byte als UUID, mit gesetzten Versions-Bits (5 bzw. 3) und Variant-Bits.

Die Eingaben:

  • Namespace und ggf. Custom namespace UUID — siehe Namespaces für v5 und v3.
  • Version — v5 (SHA-1) oder v3 (MD5).
  • Names — one per line — die Zeichenketten, aus denen abgeleitet wird (Platzhalter example.com).

Ein Name pro Zeile: Jede Zeile ergibt genau eine UUID, in derselben Reihenfolge — Zeile 3 der Eingabe gehört zu Zeile 3 der Ausgabe. Eine Mengenauswahl gibt es hier nicht; die Anzahl ergibt sich aus der Zahl der Zeilen. Windows-Zeilenumbrüche werden vereinheitlicht, ein einzelner Zeilenumbruch am Ende wird ignoriert. Eine Leerzeile zwischen zwei Namen zählt dagegen als leerer Name und liefert ebenfalls eine UUID.

Name exakt wie eingegeben: Das Tool schneidet nichts ab. Ein Leerzeichen oder Tab am Anfang oder Ende gehört zum Namen und ergibt eine völlig andere UUID. Damit das nicht unbemerkt passiert, erscheint unter dem Feld live ein gelber Hinweis wie „Line 2 starts or ends with a space — it is part of the name and changes the UUID." (bis zu zehn Zeilennummern, danach „…").

Ist das Namensfeld leer, meldet das Tool „Please enter a name.".

Namespaces für v5 und v3

Der Namespace legt fest, in welchem „Kontext" der Name interpretiert wird — derselbe Name in zwei verschiedenen Namespaces ergibt zwei verschiedene UUIDs.

Vordefinierte Namespaces

Im Dropdown Namespace stehen die vier in RFC 9562 (Appendix A) festgelegten Standard-Namespaces zur Auswahl; die Einträge zeigen jeweils den Anfang ihrer UUID, etwa DNS (6ba7b810-…):

  • DNS (6ba7b810-9dad-11d1-80b4-00c04fd430c8, Voreinstellung) — für Domain-Namen, z. B. example.com.
  • URL (6ba7b811-9dad-11d1-80b4-00c04fd430c8) — für vollständige URLs.
  • OID (6ba7b812-9dad-11d1-80b4-00c04fd430c8) — für Object Identifier.
  • X.500 (6ba7b814-9dad-11d1-80b4-00c04fd430c8) — für X.500-Distinguished-Names.

Eigener Namespace (Custom UUID)

Wählst du im Dropdown Custom UUID, wird das Feld Custom namespace UUID aktiv und bekommt gleich den Fokus. Dort trägst du eine eigene Namespace-UUID ein — in jeder Schreibweise, die auch der Decoder versteht: mit oder ohne Bindestriche, in Groß- oder Kleinbuchstaben, in geschweiften Klammern, mit urn:uuid:-Präfix oder als Base64/Base64url. Ist die Eingabe in keiner dieser Schreibweisen lesbar, färbt das Tool das Feld schon beim Tippen rot; klickst du trotzdem auf Generate name-based, meldet es „Invalid namespace UUID.". So kannst du eine projekteigene Namespace-Hierarchie aufbauen und v5- oder v3-UUIDs reproduzierbar daraus ableiten.

Anzahl und Massen-Erzeugung

Für v4, v7 und v6/v1 gibt es das Zahlenfeld Number of UUIDs — jeder Tab hat sein eigenes. Erlaubt sind 1 bis 10.000; die Vorschlagsliste des Feldes bietet 1, 10, 100, 1000 und 10000 an, du kannst aber jeden Wert dazwischen eintippen. Leere oder ungültige Eingaben behandelt das Tool als 1. Klickst du mit einem Wert über 10.000 auf den Generate-Knopf des Tabs, setzt das Tool das Feld auf 10.000 zurück, erzeugt 10.000 UUIDs und meldet „At most 10.000 at once.". Die Zahl in der Meldung folgt der Sprache deines Browsers — in einem englischsprachigen steht dort „10,000".

Erzeugst du mehrere, listet das Tool sie untereinander (eine UUID pro Zeile) im Ergebnisfeld — bequem zum Kopieren als Block oder zum Download. Bei v5/v3 bestimmt die Zahl der Namenszeilen die Menge (siehe oben).

NIL- und Max-UUID

Im Fuß der Karte stehen dauerhaft die beiden Sonderwerte aus RFC 9562:

  • NIL: 00000000-0000-0000-0000-000000000000 — alle 128 Bit Null. Sie dient als Platzhalter oder Null-Wert, wo eine UUID erwartet, aber keine echte gesetzt wird.
  • Max: ffffffff-ffff-ffff-ffff-ffffffffffff — alle 128 Bit Eins. Sie eignet sich als obere Grenze, etwa für Bereichsabfragen oder als Sentinel-Wert.

Je ein kleiner Kopier-Knopf daneben übernimmt den Wert in die Zwischenablage — und zwar im aktuell gewählten Output format: Steht das Format auf {Braces} (Microsoft), kopierst du {00000000-0000-0000-0000-000000000000}.

Kopieren und Herunterladen

Neben jedem Ergebnisfeld sitzen zwei Knöpfe:

  • Copy (Klemmbrett-Symbol) übernimmt den gesamten angezeigten Inhalt in die Zwischenablage. Ist das Feld noch leer, erscheint „Nothing to copy — generate some UUIDs first.".
  • Download as .txt (Pfeil nach unten) speichert den Inhalt als Textdatei uuids.txt — UTF-8, eine UUID pro Zeile, mit abschließendem Zeilenumbruch. Ohne Ergebnis meldet das Tool „Nothing to download — generate some UUIDs first.".

Beide Knöpfe nehmen den Text so, wie er angezeigt wird — also im gewählten Ausgabeformat.

Ausgabeformat

Das Auswahlfeld Output format im Fuß der Karte legt fest, wie alle erzeugten UUIDs angezeigt, kopiert und heruntergeladen werden. Intern hält das Tool jede UUID in der kanonischen Form; ein Formatwechsel stellt deshalb alle vier Ergebnisfelder sofort um, ohne neue UUIDs zu erzeugen. Die Wahl merkt sich der Browser (localStorage) für den nächsten Besuch.

Die sieben Formate am Beispiel f47ac10b-58cc-4372-a567-0e02b2c3d479:

Option im Tool Ausgabe
Standard (lower case) f47ac10b-58cc-4372-a567-0e02b2c3d479
Upper case F47AC10B-58CC-4372-A567-0E02B2C3D479
Without hyphens f47ac10b58cc4372a5670e02b2c3d479
{Braces} (Microsoft) {f47ac10b-58cc-4372-a567-0e02b2c3d479}
urn:uuid: (RFC 9562) urn:uuid:f47ac10b-58cc-4372-a567-0e02b2c3d479
Base64 9HrBC1jMQ3KlZw4CssPUeQ==
Base64url (no padding) 9HrBC1jMQ3KlZw4CssPUeQ

Standard ist die Voreinstellung. Base64 und Base64url kodieren die 16 Rohbytes der UUID (22 Zeichen, bei Base64 mit == aufgefüllt); Base64url ersetzt + und / durch - und _ und lässt das Padding weg — praktisch für URLs und Dateinamen. Die Anzeige im Tab Decode folgt dem Ausgabeformat nicht, sie zeigt immer die kanonische Form.

Decoder (Decode)

Der Tab Decode liest vorhandene UUIDs aus. Du fügst sie in das Feld UUIDs ein, eine pro Zeile (Platzhalter: eine v7-UUID aus RFC 9562). Die Auswertung läuft live beim Tippen, einen Knopf gibt es nicht. Leere Zeilen überspringt der Decoder, ausgewertet werden höchstens die ersten 200 Zeilen.

Akzeptierte Schreibweisen: mit oder ohne Bindestriche, Groß- oder Kleinbuchstaben, in geschweiften Klammern, mit urn:uuid:-Präfix sowie Base64 und Base64url (22 Zeichen, bei Base64 optional mit ==). Leerzeichen am Zeilenrand stören nicht.

Für jede Zeile erscheint eine Karte; ihr Kopf zeigt die UUID in kanonischer Form. Darunter stehen, je nach Inhalt:

  • Version — Nummer und Bedeutung, etwa 7 — time-ordered (Unix ms). Die Bezeichnungen: 1 time-based (Gregorian), 2 DCE security, 3 name-based (MD5), 4 random, 5 name-based (SHA-1), 6 time-ordered (Gregorian), 7 time-ordered (Unix ms), 8 custom.
  • Variant — RFC 9562 (10xx) für normgerechte UUIDs; daneben erkennt der Decoder NCS (reserved, 0xxx), Microsoft (110x) und Future (111x). Bedeutung der Version und Zeitangaben gibt es nur bei der RFC-Variante.
  • Time (UTC) und Time (local) — bei v1, v6 und v7: der Erzeugungszeitpunkt als ISO-8601-Zeit in UTC und ausgeschrieben in der Zeitzone und Sprache deines Browsers.
  • Bei v1 und v6 zusätzlich Timestamp (100 ns since 1582-10-15) (Rohwert), Clock sequence und Node — Letzterer mit dem Zusatz „(random — multicast bit set)" bei zufälligem Node oder „(MAC address)", wenn das Multicast-Bit nicht gesetzt ist.
  • Bei v7 zusätzlich Random / counter (74 bit) als Hexwert.
  • Bei v3 und v5 der Vermerk „Hash of namespace + name — the name cannot be recovered" — der Name lässt sich aus der UUID nicht zurückgewinnen.
  • Bei v4 die Angabe Random bits 122.

Die Sonderwerte erkennt der Decoder als eigene Type-Zeile: „NIL UUID (all zeros)" bzw. „Max UUID (all ones, RFC 9562)". Eine ungültige Zeile bekommt Valid „No — Not a UUID: …" mit der ursprünglichen Eingabe. Ausnahme: Eine Zeile aus genau 22 Zeichen des Base64-Alphabets — etwa eine auf 22 Zeichen abgeschnittene UUID — liest der Decoder als Base64 und zeigt dafür eine Karte mit einer scheinbar gültigen, aber sinnlosen UUID (oft mit untypischer Version und Variante).

Zufallsquelle und Sicherheit

Die Zufallsversionen v4, v7 und v6/v1 ziehen ihre Zufallsbits aus dem kryptografisch sicheren Zufallsgenerator des Browsers — crypto.getRandomValues, bei v4 wenn verfügbar direkt crypto.randomUUID(). Das ist sicherheitsrelevant: Im Gegensatz zu Math.random ist diese Quelle nicht vorhersagbar, sodass sich v4-UUIDs und der Zufallsteil von v7 nicht erraten lassen. Bei v6/v1 sind Node und Clock-Sequence zufällig, der Zeitstempel aber nicht — diese UUIDs sind innerhalb eines Seitenaufrufs fortlaufend. v5 und v3 sind nicht zufällig, sondern berechnen sich deterministisch über SHA-1 bzw. MD5. Für v5 nutzt das Tool die Web-Crypto-API, die einen sicheren Kontext (HTTPS) voraussetzt.

Betriebsgrenzen und Datenschutz

  • Clientseitig: Erzeugung und Decodierung passieren im Browser. Es gibt keinen Server-Aufruf, keine Übertragung von Namen, Namespaces oder Ergebnissen.
  • Speicherung: Nur das gewählte Output format landet im localStorage deines Browsers; erzeugte UUIDs, Namen und Decoder-Eingaben werden nicht gespeichert.
  • Sicherer Kontext: Die für v5 genutzte Web-Crypto-API setzt HTTPS voraus (oder localhost).
  • Mengen: Pro Lauf 1 bis 10.000 UUIDs (v4, v7, v6/v1); bei v5/v3 eine UUID pro Namenszeile; der Decoder wertet bis zu 200 Zeilen aus.
  • Formate: sieben Ausgabeformate, gültig für Anzeige, Kopieren, Download und die NIL-/Max-Knöpfe.
  • Versionen: v4, v7, v6, v1, v5, v3 sowie NIL- und Max-UUID. Der Decoder erkennt zusätzlich v2 (DCE security) und v8 (custom), erzeugt sie aber nicht.

Für den Einstieg und die Versions-Empfehlung siehe die Übersichtsseite. Konkrete Durchläufe stehen in den Beispielen, Strategie und Stolperfallen in den Tipps & Tricks. Ausprobieren kannst du alles direkt im Tool.