UUID Generator

Generieren Sie sofort eine zufällige UUID v4 oder eine zeitsortierte UUID v7, oder bis zu 10.000 auf einmal. Zugleich ist dies ein Online-GUID-Generator: Eine neue GUID ist ein 128-Bit-Wert derselben Art. Fügen Sie eine beliebige UUID ein, um Version, Erstellungszeit und jedes Feld zu dekodieren.

RFC 9562 · crypto.getRandomValues · in Ihrem Browser erzeugt und gelesen, nichts wird gesendet

Die farbige Ziffer ist die Version: die erste Ziffer der dritten Gruppe jeder UUID.

v4 · Zufällig36 Zeichen · 122 Zufallsbits
xxxxxxxx-xxxx-4xxx-Nxxx-xxxxxxxxxxxx
Aufbau · RFC 9562 §5.4128 Bit · 32 Hex-Ziffern · 36 Zeichen
Zeigen oder tippen Sie auf ein Feld, um es zu lesen

In Ihrem Browser mit crypto.getRandomValues erzeugt und gelesen; nichts wird gesendet.

Format

Was ist eine UUID? Und wofür steht die Abkürzung?

UUID ist die Abkürzung für Universally Unique Identifier, auf Deutsch etwa „universell eindeutige Kennung“: eine 128-Bit-Kennung, die jeder Computer selbst erzeugen kann, in der Erwartung, dass kein anderer Computer dieselbe erzeugt. Geschrieben wird sie als 32 Hexadezimalziffern in fünf Gruppen, etwa 919108f7-52d1-4320-9bac-f847db4148a8.

Das Format legt RFC 9562 (Mai 2024) fest, der RFC 4122 ablöste und die Versionen 6, 7 und 8 hinzufügte. Keine zentrale Stelle vergibt UUIDs: Die Eindeutigkeit entsteht je nach Version aus Zufall, aus einem Zeitstempel oder aus dem Hash eines Namens.

Datenbanken nutzen sie als Primärschlüssel, APIs als Request- und Objekt-IDs, Betriebssysteme für Datenträger, Partitionen und Softwarekomponenten. GUID (Globally Unique Identifier) ist Microsofts Name für dasselbe.

Ein Wert, vier GrößenRFC 9562 §4

UniversallyUniqueIDentifier

  1. 128 Bit
  2. 16 Bytes
  3. 32 Hex-Ziffern
  4. 36 Zeichen mit den Bindestrichen919108f7-52d1-4320-9bac-f847db4148a8

GUIDMicrosofts Name für denselben Wert

Das Beispiel der Version 4 aus RFC 9562, auf vier Arten gezählt. Die Textform ergänzt die 32 Hex-Ziffern um vier Bindestriche: 36 Zeichen.
UUID Generator: eine UUID v7, Feld für Feld mit Zeitstempel, Version und Zufallsbits markiert, dazu eine Serie von v7-UUIDsUUID Generator: eine UUID v7, Feld für Feld mit Zeitstempel, Version und Zufallsbits markiert, dazu eine Serie von v7-UUIDsVersion wählenZufällige v4, zeitsortierte v7, namensbasierte v5 und die übrigen, jede in ihrer eigenen Farbe.Ein KlickKopieren oder eine neue erzeugen; eine Serie von bis zu 10.000 exportieren Sie als Text, CSV, JSON oder SQL.Jedes FeldDie Bits, die RFC 9562 für diese Version definiert, samt der ausgelesenen Zeit einer v7.Jedes FormatKlammern, ohne Bindestriche, Großbuchstaben, Base64url, eine Ganzzahl oder die .NET-Byte-Reihenfolge.
Eine UUID v7 zerlegt: der 48-Bit-Zeitstempel, die Versionsziffer, die Variantenbits und der Zufallsteil. Wählen Sie eine Nummer, um zu sehen, was der jeweilige Teil zeigt.

UUID-Format und UUID-Länge: 36 Zeichen

Eine UUID hat 128 Bit und wird als 32 Hex-Ziffern und 4 Bindestriche in Gruppen zu 8, 4, 4, 4 und 12 geschrieben: 36 Zeichen. Die erste Ziffer der dritten Gruppe ist die Version, und die erste Ziffer der vierten Gruppe zeigt die Variante: 8, 9, a oder b bei UUIDs nach RFC 9562.

017f22e2-79b0-7cc3-98c4-dc0c0c07398f ist also Version 7 mit RFC-Variante. Groß-, Klein- und gemischte Schreibung sind alle gültig; die meisten Tools geben Kleinbuchstaben aus, uuidgen unter macOS Großbuchstaben. Ohne Bindestriche sind es 32 Zeichen, in Klammern 38 (das Format B von .NET), als urn:uuid: 45 und in Base64url 22.

Ein regulärer Ausdruck, der die RFC-Form prüft: ^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$, ohne Beachtung der Groß- und Kleinschreibung. Er lehnt die Nil- und die Max-UUID ab, die gültig, aber besondere Werte sind; der Decoder oben benennt sie.

Die TextformRFC 9562 §4
017f22e28-79b04-7cc34-98c44-dc0c0c07398f12

32 Hex-Ziffern + 4 Bindestriche = 36 Zeichen

xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxxM Version: 1–8N Variante: 8, 9, a oder b
Regex · ohne Groß-/Kleinschreibung^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$
Dieselben 128 Bit, anders geschrieben
  • Standard017f22e2-79b0-7cc3-98c4-dc0c0c07398f36
  • Ohne Bindestriche017f22e279b07cc398c4dc0c0c07398f32
  • Klammern {…}{017f22e2-79b0-7cc3-98c4-dc0c0c07398f}38
  • urn:uuid:urn:uuid:017f22e2-79b0-7cc3-98c4-dc0c0c07398f45
  • Base64urlAX8i4nmwfMOYxNwMDAc5jw22
  • Base64AX8i4nmwfMOYxNwMDAc5jw==24
  • Base58BihbxwwQ4NZZpKRH9JDCz21
  • Base3201FWHE4YDGFK1SHH6W1G60EECF26
  • Ganzzahl1989357241971137676463954034883508623bis zu 39
  • Binär01 7f 22 e2 79 b0 7c c3 98 c4 dc 0c 0c 07 39 8f16 Bytes
Das eigene v7-Beispiel von RFC 9562 in jeder Schreibweise. Der reguläre Ausdruck lehnt die Nil- und die Max-UUID absichtlich ab, denn sie haben keine Version.

UUID-Versionen erklärt: v1 bis v8

Die Version sagt, wie eine UUID entstanden ist: v4 aus Zufallsbits, v7 aus der Zeit plus Zufallsbits, v1 und v6 aus einem Zeitstempel und einer Knoten-ID, v3 und v5 durch das Hashen eines Namens und v8 in einem eigenen Layout ihres Generators.

Die Versionen 2 und 0 werden hier nicht erzeugt: v2 (DCE Security) ist reserviert, und RFC 9562 definiert ihr Layout nicht; 0 ist keine Version. Die beiden Sonderwerte haben keine Version: Die Nil-UUID besteht nur aus Nullen, die Max-UUID nur aus Einsen (ffffffff-ffff-ffff-ffff-ffffffffffff, neu in RFC 9562).

Für neue Systeme empfiehlt RFC 9562 v7 statt v1 und v6 sowie v5 statt v3. v4 bleibt die einfache Wahl, wenn der Wert nichts darüber verraten soll, wann er erstellt wurde.

VersionIhre 128 BitsErzeugt ausNach Zeit sortierbar
v1Zeit + Knoten · §5.1Zeit (100 ns) + Clock-Sequenz + KnotenNein
v2DCE Security: reserviert, kein Layout in RFC 9562Nicht erzeugt: kein Layout definiert–
v3Name per MD5 · §5.3MD5 aus Namensraum + NameNein
v4Zufällig · §5.4ZufallsbitsNein
v5Name per SHA-1 · §5.5SHA-1 aus Namensraum + NameNein
v6Sortierbare v1 · §5.6Die Felder von v1, hohe Zeitbits zuerstJa
v7Zeitsortiert · §5.7Unix-Zeit (ms) + ZufallsbitsJa
v8Eigenes Layout · §5.8Ein eigenes Layout des GeneratorsNein
Nil§5.9Nur Nullen: „kein Wert“–
Max§5.10Nur Einsen: ein Sentinel-Wert–
  • Zeit
  • Zufall
  • Hash
  • Clock-Sequenz
  • Knoten
  • Version
  • Variante
Jeder Balken zeigt die 128 Bits einer Version so, wie RFC 9562 sie anordnet, nach dessen eigenen Testvektoren. Nur v6 und v7 stellen die Zeit an den Anfang, daher sortieren nur sie als Text nach Zeit.

UUID v4 vs. v7: Welche sollten Sie verwenden?

Verwenden Sie v7 für Datenbankschlüssel und alles, was Sie sortieren oder indexieren: Eine v7 beginnt mit der Erstellungszeit, neue Zeilen landen also am Ende des Index. Verwenden Sie v4, wenn die ID nicht verraten darf, wann sie erstellt wurde: Alle 122 freien Bits sind zufällig.

Zufällige v4-Schlüssel verteilen jeden Insert über den ganzen B-tree-Index; das führt zu Seitenteilungen und hält einen größeren Teil des Index im Arbeitsspeicher. v7-Schlüssel kommen geordnet an wie eine Auto-Increment-Zahl, und doch kann jeder Server sie erzeugen, ohne eine Datenbank zu fragen. Eine v7 hat 74 Zufallsbits pro Millisekunde, sodass zwei Server, die im selben Moment eine erzeugen, trotzdem nicht kollidieren.

Der Haken: Wer eine v7 sieht, kann die Millisekunde ihrer Erstellung ablesen (fügen Sie eine in den Decoder oben ein). Wenn das wichtig ist, verwenden Sie v4, oder nutzen Sie v7 nur intern und zeigen Sie öffentlich eine andere ID.

12 Inserts in einen B-tree-Index8 Blattseiten · je 16 Schlüssel
v4-Schlüssel landen irgendwo7 von 8 Seiten betroffen · 3 Seitenteilungen
Seiten nach erstem Byte
00–1fgeteilt
20–3f
40–5f
60–7f
80–9f
a0–bf
c0–dfgeteilt
e0–ffgeteilt
c100eb4b-4f3f-4b29-ad77-da7cd9d1eda592c97333-2db8-4fc2-b5b6-cedd8c7abede
v7-Schlüssel landen am Ende1 von 8 Seiten betroffen · 0 Seitenteilungen
Seiten nach dem Tag, an dem die Schlüssel entstanden
17. Okt.
18. Okt.
19. Okt.
20. Okt.
21. Okt.
22. Okt.
23. Okt.
24. Okt.
01a16d3e-e1c0-70f6-99ec-6d454991b2fa01a16d3e-e1c0-70f6-99ec-6d45c2f6b35b
  • bereits im Index
  • frei
  • neue v4
  • neue v7
  • Seitenteilung: Die Hälfte der Schlüssel zieht auf eine neue Seite
Ein Modell, kein Benchmark: Blattseiten mit je 16 Schlüsseln. Zufällige Schlüssel treffen auf ältere, fast volle Seiten und teilen sie; die ersten Bytes einer v7 sind die Zeit, daher landen alle zwölf auf der neuesten Seite, die noch Platz hat.

GUID vs. UUID: Gibt es einen Unterschied?

Eine GUID und eine UUID sind derselbe 128-Bit-Wert in derselben Textform; GUID ist Microsofts Name dafür. Guid.NewGuid() in .NET erzeugt eine zufällige UUID der Version 4, Guid.CreateVersion7() in .NET 9 eine der Version 7.

Der Unterschied liegt im Speicher. Microsofts GUID-Struktur speichert ihre ersten drei Gruppen als Little-Endian-Ganzzahlen, daher liefert ToByteArray() in .NET die ersten 8 Bytes in anderer Reihenfolge als die Netzwerk-Byte-Reihenfolge von RFC 9562: Aus 919108f7-52d1-… werden die Bytes f7 08 91 91 d1 52 …. Der Text ist derselbe; rohe Bytes, die zwischen Systemen wandern, müssen umgewandelt werden. Der Decoder zeigt beide Reihenfolgen.

Der Typ uniqueidentifier von SQL Server sortiert außerdem zuerst nach seinen letzten sechs Bytes, sodass v7-Werte dort nicht in zeitlicher Reihenfolge bleiben; NEWSEQUENTIALID() erzeugt Werte, die das tun, die aber nach einem Neustart wieder niedriger beginnen können und leicht zu erraten sind. Alte COM-GUIDs können statt der Variantenbits von RFC 9562 Microsofts eigene tragen; der Decoder benennt diese Variante.

Eine GUID, drei Byte-Reihenfolgen16 Bytes
919108f7-52d1-4320-9bac-f847db4148a8
RFC 9562 Netzwerk-Byte-Reihenfolge
.NET Guid.ToByteArray()
SQL Server uniqueidentifier-SortierungDie letzten sechs Bytes bestimmen die Reihenfolge
  • Data1 · 4 Bytes, umgekehrt
  • Data2 · umgekehrt
  • Data3 · umgekehrt
  • Data4 · unverändert
Derselbe Text im Speicher: .NET speichert die ersten drei Gruppen als Little-Endian, und SQL Server sortiert zuerst nach den letzten sechs Bytes, sodass zeitsortierte v7-Schlüssel dort nicht in Reihenfolge bleiben.

So erzeugen Sie eine UUID im Code

Die meisten Sprachen erzeugen eine v4-UUID in einer Zeile, und viele inzwischen auch v7: uuid.uuid7() in Python 3.14, Guid.CreateVersion7() in .NET 9, UUID.ofEpochMillis() in Java 26, uuid.NewV7() in Go 1.27, crypto.randomUUIDv7() in Node.js 26.1 und uuidv7() in PostgreSQL 18. Browser haben weiterhin nur crypto.randomUUID(), eine v4.

Wählen Sie Ihre Sprache für den Einzeiler. Nicht jede v7-Implementierung hält UUIDs aus derselben Millisekunde in Reihenfolge: Die von Python und Go tun es, die von .NET und Node versprechen es nicht. Und UUID() in MySQL liefert eine UUID der Version 1, die unter Linux und Windows die echte MAC-Adresse des Servers enthält.

Integrierte UUID-Funktionen je Sprache

Python
import uuid

uuid.uuid4()   # v4
uuid.uuid7()   # v7, Python 3.14+
uuid.uuid5(uuid.NAMESPACE_DNS, "www.example.com")  # v5

uuid7() führt einen 42-Bit-Zähler, sodass UUIDs aus einer Millisekunde in Reihenfolge bleiben.

Versionen so, wie die eigene Dokumentation jeder Sprache sie aufführt; die Marken sind die eigenen Logos der Projekte.

Können zwei UUIDs gleich sein?

Theoretisch ja, praktisch nein: Eine v4-UUID hat 122 Zufallsbits, etwa 5,3 × 10³⁶ Werte. Sie müssten etwa 103 Billionen davon erzeugen, damit die Wahrscheinlichkeit, dass zwei übereinstimmen, eins zu einer Milliarde beträgt, und etwa 2,7 Trillionen für eine Wahrscheinlichkeit von 50 %.

Das ist die Geburtstagsschranke: Bei n Zufallswerten aus N beträgt die Wahrscheinlichkeit einer Wiederholung etwa 1 − e^(−n(n−1)/2N). Bei einer Milliarde UUIDs pro Sekunde würde es etwa 86 Jahre bis zu einer Wahrscheinlichkeit von 50 % dauern. Echte Duplikate entstehen durch fehlerhafte Generatoren: einen nicht zufälligen Seed, eine virtuelle Maschine, die samt Zufallszustand geklont wurde, oder von Hand kopierte IDs.

Bei v7 können nur UUIDs aus derselben Millisekunde übereinstimmen, und 74 Zufallsbits unterscheiden diese voneinander. Der Generator hier hält außerdem eine Serie innerhalb einer Millisekunde in Reihenfolge (RFC 9562 §6.2), sodass 10.000 auf einmal eindeutig und sortiert sind.

Die Geburtstagsschrankeeigene Rechnung
Wahrscheinlichkeit, dass zwei gleich sind1 zu 1,1 × 1019p ≈ 9,4 × 10−20

Bei einer Milliarde pro Sekunde dauert es 1 Sekunde, so viele zu erzeugen.

p ≈ 1 − e^(−n(n−1)/2N), mit N = 2¹²² für v4 und 2⁷⁴ pro Millisekunde für v7. RFC 9562 nennt keine Kollisionszahlen: Diese sind unsere eigenen, aus derselben Funktion, die die Seite nutzt.

UUID-Decoder: So lesen Sie den Zeitstempel einer UUID aus

Fügen Sie eine UUID unter „Dekodieren & prüfen“ ein, dem UUID-Decoder und Validator oben: Er liest Version und Variante an zwei festen Stellen, dann die Felder, die diese Version definiert. Eine v7 nennt die Millisekunde ihrer Erstellung, eine v1 oder v6 die Zeit auf 100 Nanosekunden genau, dazu eine Clock-Sequenz und eine Knoten-ID.

Ein Knoten einer v1 oder v6 mit nicht gesetztem Multicast-Bit kann die echte MAC-Adresse der Netzwerkkarte sein; ihren Hersteller finden Sie über die MAC-Adressen-Abfrage. Generatoren, die auf Datenschutz achten, setzen dieses Bit und nutzen einen zufälligen Knoten, so wie dieser hier.

Die Zeit ist das, was der Generator hineingeschrieben hat, kein Beweis dafür, wann die UUID erstellt wurde. v4 enthält keine Zeit, nur Zufallsbits, und v3, v5 und v8 enthalten Hashes: Da gibt es nichts auszulesen, und ein Hash lässt sich nicht in den Namen zurückrechnen. Fügen Sie eine Liste ein, um bis zu 1.000 auf einmal zu prüfen: ungültige Zeilen, Duplikate und ob zeitbasierte UUIDs in Reihenfolge sind.

Zwei Schreibweisen für denselben MomentRFC 9562 · Appendix A
017f22e2-79b0-7cc3-98c4-dc0c0c07398f
  1. unix_ts_ms0x017f22e279b0
  2. ms seit 19701 645 557 742 000
  3. UTC2022-02-22T19:22:22.000Z
c232ab00-9414-11ec-b3c8-9f6bdeced846
  1. time_high · time_mid · time_low1ec 9414 c232ab00
  2. 100-ns-Schritte seit 1582-10-15138 648 505 420 000 000
  3. UTC2022-02-22T19:22:22.0000000Z

Derselbe Moment: Die Beispiele von RFC 9562 wurden zusammen erzeugt.

Eine v7 beginnt mit den Millisekunden seit 1970. Eine v1 speichert den niedrigen Teil ihrer Zeit zuerst, daher bringt der Decoder die drei Teile wieder in Reihenfolge, bevor er ab dem 15. Oktober 1582 zählt.

Namensbasierte UUIDs: v5 und v3

Eine v5-UUID ist der SHA-1-Hash einer Namensraum-UUID plus eines Namens, gekürzt auf 128 Bit, mit gesetzter Version und Variante; v3 macht dasselbe mit MD5. Derselbe Namensraum und derselbe Name ergeben immer dieselbe UUID, auf jedem Computer: Wählen Sie oben v5, um diese Seite als UUID-v5-Generator zu nutzen.

RFC 9562 definiert vier Namensräume: DNS für Domainnamen, URL, OID und X.500. www.example.com im DNS-Namensraum ergibt als v5 also immer 2ed6657d-e927-568b-95e1-2665a8aea6a2. Nutzen Sie namensbasierte UUIDs, um etwas, das schon einen eindeutigen Namen hat, eine stabile ID zu geben, ohne eine Zuordnung zu speichern.

Wählen Sie v5 statt v3: MD5 ist schwächer, und RFC 9562 empfiehlt v5. Keine von beiden verbirgt den Namen: Wer ihn erraten kann, kann dieselbe UUID berechnen. Die Option v8 nutzt hier SHA-256 auf dieselbe Weise, wie im eigenen v8-Beispiel des RFC.

Namensraum + Name → v5RFC 9562 §5.5
  1. Namensraum6ba7b810-9dad-11d1-80b4-00c04fd430c8DNS · 16 Bytes
  2. Name"www.example.com"UTF-8 · 15 Bytes
  3. SHA-1-Digest, 160 Bit2ed6657de927468b55e12665a8aea6a22dee3e35die ersten 128 Bits bleiben
  4. Die UUID2ed6657d-e927-568b-95e1-2665a8aea6a2Versionsziffer 4 → 5 · Variantenziffer 5 → 9
  • DNS6ba7b810…
  • URL6ba7b811…
  • OID6ba7b812…
  • X.5006ba7b814…
Das eigene v5-Beispiel von RFC 9562: www.example.com im DNS-Namensraum. Jeder Computer, der denselben Namensraum und Namen hasht, erhält dieselbe UUID.

ULID vs. UUID v7 (und andere IDs)

Eine ULID und eine UUID v7 beginnen beide mit einem 48-Bit-Zeitstempel in Millisekunden und sortieren nach Zeit. Der Unterschied: Eine ULID nutzt alle übrigen 80 Bits für Zufall und wird als 26 Base32-Zeichen geschrieben, während eine v7 6 Bits für Version und Variante aufwendet und in jede UUID-Spalte und jede Bibliothek passt.

Wenn Ihre Datenbank, Ihr ORM oder Ihre API bereits UUIDs verwendet, bekommen Sie mit v7 eine zeitliche Ordnung ohne neuen Typ. NanoID und ähnliche kurze IDs sind zufällige Zeichenketten gewählter Länge, ohne Zeit und ohne Standardlayout. Jede UUID lässt sich außerdem kürzer schreiben: 22 Zeichen in Base64url, höchstens 22 in Base58.

Drei IDs, je 128 Bitmaßstabsgetreu
UUID v7erst Zeit, dann Zufall
36 Zeichennach Zeit sortierbar
ULIDerst Zeit, dann Zufall
26 Zeichennach Zeit sortierbar
UUID v4nur Zufall
36 Zeichenkeine Ordnung
  • Millisekunden seit 1970
  • Zufall
  • Version und Variante
UUID v7 und ULID teilen sich die 48-Bit-Millisekundenuhr; v7 gibt 6 Bits an Version und Variante ab, ULID nutzt alle 80 für Zufall. Eine v4 ist nur Zufall; in Base64url hat jede UUID 22 Zeichen.

Sind UUIDs als Token sicher?

Nein. RFC 9562 sagt, man solle nicht annehmen, dass UUIDs schwer zu erraten sind, und sie nie als Sicherheitsmerkmal (Security Capability) verwenden: eine ID, deren Besitz Zugriff gewährt, etwa ein Link zum Zurücksetzen eines Passworts oder ein API-Schlüssel.

Eine v4 aus einem guten Generator ist zufällig, aber eine v1, v6 oder v7 verrät ihre Erstellungszeit, und eine v3 oder v5 lässt sich aus ihrem Namen neu berechnen. Verwenden Sie für Geheimnisse ein eigens dafür gemachtes Token, etwa 256 Zufallsbits aus einem kryptografischen Generator, und prüfen Sie die Berechtigung bei jeder Anfrage. Als öffentliche IDs sind UUIDs in Ordnung, wenn der Zugriff separat geprüft wird.

IDWas jeder erfährt, der sie siehtAls Geheimnis
v1, v6Wann sie erstellt wurde, und vielleicht die MAC-Adresse der NetzwerkkarteNein
v7Die Millisekunde ihrer ErstellungNein
v5, v3Nichts Neues, aber ein erratener Name ergibt dieselbe UUIDNein
v4Nichts, bei einem einwandfreien GeneratorNein
256-Bit-TokenNichts: für Geheimnisse gemachtJa
RFC 9562 sagt, man solle nicht annehmen, dass UUIDs schwer zu erraten sind, und sie nicht als Sicherheitsmerkmal verwenden. Nutzen Sie für Geheimnisse ein Token aus einem kryptografischen Generator und prüfen Sie den Zugriff bei jeder Anfrage.

UUID-Generator: Fragen und Antworten

Wie kann ich eine UUID generieren?

Öffnen Sie diese Seite: Als UUID-v4-Generator hält sie sofort eine zufällige UUID v4 zum Kopieren bereit, und „Neue UUID“ erzeugt eine weitere. Wählen Sie v7, um sie als UUID-v7-Generator zu nutzen, stellen Sie eine Anzahl von bis zu 10.000 auf einmal ein und wählen Sie ein Format wie Klammern oder Base64url. Im Code erzeugen crypto.randomUUID() in JavaScript, uuid.uuid4() in Python und Guid.NewGuid() in C# jeweils eine v4 in einer Zeile.

Wofür steht die Abkürzung UUID?

Für Universally Unique Identifier, auf Deutsch etwa „universell eindeutige Kennung“. Es ist ein 128-Bit-Wert, geschrieben als 36 Zeichen wie 919108f7-52d1-4320-9bac-f847db4148a8, den Computer unabhängig voneinander und ohne zentrale Vergabestelle erzeugen und der trotzdem eindeutig sein soll. RFC 9562 definiert ihn. Microsoft nennt denselben Wert GUID, Globally Unique Identifier.

Ist eine GUID dasselbe wie eine UUID?

Ja, praktisch gesehen: dieselben 128 Bit und dieselbe Textform, und Guid.NewGuid() erzeugt eine Standard-UUID der Version 4. Zwei Details unterscheiden sich. .NET speichert die ersten drei Gruppen als Little-Endian, rohe Byte-Arrays haben daher eine andere Reihenfolge, und SQL Server sortiert uniqueidentifier-Werte zuerst nach der letzten Gruppe. Um eine GUID zu generieren, nutzen Sie diese Seite als zufälligen GUID-Generator: Der kopierte Text funktioniert in beiden Welten.

Welche UUID-Version sollte ich verwenden?

Version 7 für Datenbankschlüssel und alles, was sortiert wird, weil sie mit der Erstellungszeit beginnt und Indizes kompakt hält. Version 4, wenn die ID nicht verraten soll, wann sie erstellt wurde. Version 5, wenn derselbe Name immer dieselbe ID ergeben muss. Meiden Sie v1 für neue Projekte: RFC 9562 empfiehlt stattdessen v7, und eine v1 kann eine echte MAC-Adresse enthalten.

Können zwei UUIDs jemals gleich sein?

Nur mit astronomisch kleiner Wahrscheinlichkeit, wenn der Generator einwandfrei arbeitet. Eine v4 hat 122 Zufallsbits, sodass etwa 103 Billionen UUIDs eine Wahrscheinlichkeit von eins zu einer Milliarde für eine einzige Wiederholung ergeben; für 50 % braucht es etwa 2,7 Trillionen. Duplikate in der Praxis stammen von fehlerhaften Generatoren, geklonten virtuellen Maschinen oder kopierten Daten, nicht aus der Mathematik.

Kann man eine UUID dekodieren?

Teilweise. Jede UUID zeigt ihre Version und Variante. Eine v7 verrät außerdem die Millisekunde ihrer Erstellung, eine v1 oder v6 die Zeit auf 100 Nanosekunden genau, eine Clock-Sequenz und eine Knoten-ID, manchmal eine echte MAC-Adresse. Eine v4 enthält nur Zufallsbits, und v3 und v5 enthalten Hashes, die sich nicht in den Namen zurückverwandeln lassen. Fügen Sie eine UUID unter „Dekodieren & prüfen“ ein.

Wie lang ist eine UUID?

128 Bit oder 16 Bytes. Als Text sind es 36 Zeichen: 32 Hexadezimalziffern und 4 Bindestriche in Gruppen zu 8-4-4-4-12. Ohne Bindestriche sind es 32 Zeichen, in Klammern 38, mit dem Präfix urn:uuid: 45, in Base64url 22 und als Dezimalzahl bis zu 39 Ziffern. Speichern Sie sie nach Möglichkeit als nativen UUID-Typ oder als 16 Bytes statt als Text.

Was ist eine leere GUID oder Nil-UUID?

Der Wert, bei dem alle 128 Bits null sind: 00000000-0000-0000-0000-000000000000. RFC 9562 nennt ihn Nil-UUID, und Guid.Empty in .NET ist derselbe Wert, oft im Sinne von „keine ID gesetzt“. RFC 9562 definiert außerdem die Max-UUID, nur Einsen, ffffffff-ffff-ffff-ffff-ffffffffffff, als Sentinel-Wert (.NET 9: Guid.AllBitsSet). Keiner von beiden ist zufällig, verwenden Sie sie also nie als echte IDs.

Ist UUID v7 sortierbar?

Ja. Ihre ersten 48 Bits sind die Unix-Zeit in Millisekunden, sodass v7-UUIDs, als Text oder als Bytes sortiert, auf die Millisekunde genau nach Erstellungszeit geordnet sind. Innerhalb einer Millisekunde hängt die Reihenfolge vom Generator ab: Dieser hier hält eine Serie streng aufsteigend, wie es Abschnitt 6.2 von RFC 9562 beschreibt. Die Ausnahme ist uniqueidentifier in SQL Server: Dort wird die letzte Gruppe zuerst verglichen.

Ist es sicher, eine UUID als Passwort oder Zugriffstoken zu verwenden?

Nein. RFC 9562 warnt davor, anzunehmen, dass UUIDs schwer zu erraten sind, oder sie als Sicherheitsmerkmal zu verwenden. Zeitbasierte Versionen verraten, wann sie erstellt wurden, und namensbasierte lassen sich neu berechnen. Verwenden Sie für Geheimnisse ein Zufallstoken aus einem kryptografischen Generator, und behandeln Sie UUIDs als öffentliche IDs, bei denen der Zugriff separat geprüft wird. Für Passwörter nutzen Sie den Passwort-Generator.

Werden die hier erzeugten UUIDs irgendwohin gesendet?

Nein. Sie entstehen in Ihrem Browser mit crypto.getRandomValues, seinem kryptografisch sicheren Zufallsgenerator, und eingefügte UUIDs werden auf Ihrem Gerät dekodiert. Nichts, was Sie erzeugen oder einfügen, wird an uns oder an andere gesendet. Ein Teilen-Link enthält nur, was Sie gewählt haben: Version, Anzahl und Format, den Namen bei v5 oder die UUIDs, die Sie in den Decoder eingefügt haben. Teilen Sie ihn also so, wie Sie diese teilen würden.

Fehlt Ihnen etwas?Funktion oder neues Tool vorschlagen