Was ist GUID? — Struktur, Versionen und Eindeutigkeit erklärt
2026-05-24
Tags: Windows · GUID · Tutorial · QuickGUID
Wenn Sie unter Windows entwickeln, sind Sie ihm bestimmt schon begegnet — eine Kette von hexadezimalen Zeichen, die aussieht wie zufaelliges Geschreibsel:
6B29FC40-CA47-1067-B31D-00DD010662DAVielleicht in der Registry, in einer Projektkonfiguration, in Log-Ausgaben oder irgendwo mitten in einer Fehlermeldung. Sie wissen, dass es GUID heisst, und Sie wissen auch, dass es "eindeutig sein soll". Aber haben Sie sich jemals ernsthaft gefragt: Was genau ist das eigentlich? Warum sieht es so aus? Und wieso wiederholt es sich nie?
Genau darueber wollen wir heute sprechen.
UUID und GUID: Zwei Namen fuer dieselbe Sache
Vorab eine Tatsache, die viele nicht kennen: GUID und UUID sind exakt dasselbe.
- UUID (Universally Unique Identifier) ist der offizielle Name, definiert in RFC 4122.
- GUID (Globally Unique Identifier) ist der Name, den Microsoft dafuer verwendet.
Das ist alles. UUID ist der Standardname, GUID ist die Bezeichnung, die Microsoft in COM, der Windows-API, .NET und anderen Technologien verwendet. Ein GUID, das Sie unter Windows sehen, und ein UUID, das Sie unter Linux sehen, sind im Grube dieselbe Sache.
Der Einheitlichkeit halber verwenden wir in diesem Artikel ueberwiegend den Begriff GUID — schliesslich geht es um Windows-Entwicklung.
Die Struktur eines GUID: Sieht wild aus, hat aber System
Ein Standard-GUID sieht so aus:
6B29FC40-CA47-1067-B31D-00DD010662DA8-4-4-4-12, insgesamt 32 Hexadezimalzeichen (128 Bit), durch Bindestriche in 5 Segmente unterteilt. Sieht zufaellig aus, aber dahinter steckt eine klare Struktur:
6B29FC40-CA47-1067-B31D-00DD010662DA
↑ ↑
Version VariANTEDer Schluessel liegt im ersten Zeichen des dritten Segments und im ersten Zeichen des vierten Segments:
- Versionsnummer (Version): Das erste Hexadezimalzeichen des dritten Segments gibt an, mit welchem Algorithmus das GUID erzeugt wurde.
1steht fuer v1,4fuer v4 und7fuer v7. - Variante (Variant): Das erste Hexadezimalzeichen des vierten Segments gibt an, welcher Standard-Spezifikation das GUID folgt. Wenn es mit
8,9,AoderBbeginnt, folgt es RFC 4122 — das trifft auf die uebergrosse Mehrheit der GUIDs zu, die Sie im Alltag sehen.
Wenn Sie also das naechste Mal ein GUID sehen, werfen Sie einfach einen Blick auf das erste Zeichen des dritten Segments, und Sie wissen, ob es sich um v1, v4 oder v7 handelt. Das ist deutlich informativer als der erste Eindruck vermuten laesst.
Welche GUID-Versionen gibt es ueberhaupt?
Die UUID-Spezifikation definiert mehrere Versionen, aber in der Praxis sind vor allem drei relevant:
v1: Zeitstempel + MAC-Adresse
v1-GUIDs werden aus dem aktuellen Zeitstempel (auf 100 Nanosekunden genau) und der MAC-Adresse der Netzwerkkarte kombiniert.
Vorteil: Von Natur aus sortierbar, nach Erzeugungszeit geordnet. Nachteil: Der Zeitstempel wird offengelegt, und die MAC-Adresse ist Hardware-Information — ein echtes Problem in Sachen Datenschutz und Sicherheit. Ein Angreifer, der ein v1-GUID erhaelt, kann auf Ihre MAC-Adresse und den Erzeugungszeitpunkt rueckschliessen.
Deshalb wird v1 heute kaum noch verwendet, aber in aelteren Systemen werden Sie es noch antreffen.
v4: Pure Zufaelligkeit
v4 ist die aktuell haeufigste Version. Bis auf die feste Versions- und Varianten-Bits werden die restlichen 122 Bit vollstaendig mit Zufallszahlen gefuellt.
Kein Zeitstempel, keine Hardware-Information — die Eindeutigkeit basiert rein auf Zufall. Einfach, aber aeusserst wirkungsvoll.
Was new Guid(), uuid.uuid4() oder crypto.randomUUID() in Ihrem Projekt erzeugen, ist fast immer v4.
v7: Der neue Stern am Himmel mit Zeitsortierung
v7 wurde erst 2024 offiziell in den Standard aufgenommen. Die ersten 48 Bit speichern einen Millisekunden-Zeitstempel, der Rest wird mit Zufallszahlen gefuellt.
Warum v7? Weil v4 zwar gut ist, aber vollstaendig zufaellig — und sich nicht nach Zeit sortieren laesst. Fuer Datenbanken ist das ein Problem:
- Wenn GUIDs als Primaerschluessel verwendet werden und es sich um v4 handelt, stimmen die Einfuege-Reihenfolge und die Index-Reihenfolge nicht ueberein, weil alles zufaelllig ist. Das fuehrt zu haeufigen B+-Baum-Splits und sinkender Schreibleistung.
- Bei v7 ist die vordere Haelfte ein Zeitstempel, also natuerlich aufsteigend. Einfuege-Reihenfolge und Index-Reihenfolge sind weitgehend konsistent — deutlich bessere Schreibleistung.
Wenn Ihr Projekt GUIDs als Datenbank-Primaerschluessel verwendet, ist v7 die bessere Wahl.
"GUIDs wiederholen sich nie" — aber der viralen Behauptung im Netz fehlt die Haelfte
Immer wenn es um die Eindeutigkeit von GUIDs geht, fragt jemand: Was passiert, wenn sich zwei doch mal gleichen?
Im Netz geistert folgende Behauptung herum: "Die Kollisionswahrscheinlichkeit von v4-GUIDs ist so gering, dass selbst bei einer Milliarde GUIDs pro Sekunde ueber eine Milliarde Jahre keine Kollision auftritt." Beruhigend, oder?
Mathematisch ist das allerdings falsch.
Wo liegt der Fehler? Das Geburtstagsparadoxon
Die Behauptung tappt in eine klassische Intuitionsfalle — das Geburtstagsparadoxon.
Sie kennen vielleicht dieses Raetsel: Wie viele Menschen muessen in einem Raum sein, damit die Wahrscheinlichkeit, dass zwei von ihnen am selben Tag Geburtstag haben, ueber 50% liegt? Die Intuition sagt: Bei 365 Tagen brauche man sicher mindestens 180 Personen.
Tatsaechlich reichen 23 Personen.
Der Grund: Wir betrachten nicht, ob eine bestimmte Person an einem bestimmten Tag Geburtstag hat, sondern ob irgendein Paar den gleichen Geburtstag teilt. Je mehr Personen, desto mehr Paarkombinationen — und die wachsen rasant.
Bei GUIDs ist es genauso. Es geht nicht darum, ob ein bestimmtes GUID zufaelllig mit einem anderen uebereinstimmt, sondern ob sich unter allen erzeugten GUIDs irgendein Paar gefunden hat. Die Anzahl der Kombinationen waechst quadratisch mit der Gesamtmenge — deutlich schneller, als die Intuition vermuten laesst.
Die echte Kollisions-Zeitleiste
Wenn wir strikt mit einer Milliarde GUIDs pro Sekunde ohne Pause weitermachen und mit der Formel des Geburtstagsparadoxons neu rechnen:
- 10 Jahre: Kollisionswahrscheinlichkeit ca. 1%
- 33 Jahre: Kollisionswahrscheinlichkeit ca. 10%
- 86 Jahre: Kollisionswahrscheinlichkeit ca. 50%
Und eine Milliarde Jahre? Da laesst sich die Anzahl der Kollisionen schon gar nicht mehr zaehlen.
Kann man also beruhigt sein?
Absolut. Die obige Rechnung setzt "eine Milliarde pro Sekunde, nonstop" voraus — in der Praxis erreicht keine Anwendung diese Groessenordnung.
Wenn im gesamten Lebenszyklus Ihres Systems insgesamt 100 Billionen GUIDs erzeugt werden (was bereits eine absurd astronomische Zahl ist), betraegt die Kollisionswahrscheinlichkeit gerade einmal eins zu einer Milliarde.
Verwenden Sie GUIDs also unbesorgt.
GUID-Aerger im Entwickleralltag
Nach der Theorie zurueck in die Praxis. Die echten Schmerzpunkte bei der Arbeit mit GUIDs liegen nicht bei der Frage nach Kollisionen, sondern hier:
Erzeugung ist umstaendlich
Das mit Windows mitgelieferte guidgen.exe erzeugt nur ein einziges GUID pro Aufruf. Im Terminal? PowerShell kann es: [guid]::NewGuid(). Aber was, wenn Sie 50 GUIDs auf einmal als Testdaten brauchen? Dann muessen Sie ein Skript schreiben.
Format-Chaos
Ein und dasselbe GUID sieht in verschiedenen Sprachen und Kontexten ganz unterschiedlich aus:
6B29FC40-CA47-1067-B31D-00DD010662DA // Standardformat
6B29FC40CA471067B31D00DD010662DA // Ohne Bindestriche
{6B29FC40-CA47-1067-B31D-00DD010662DA} // Geschweifte Klammern (C#/COM)
urn:uuid:6B29FC40-CA47-1067-B31D-00DD010662DA // URN
aKXwnELGRYeysdADQClibto= // Base64Sie kopieren ein GUID aus dem Log und brauchen es als DEFINE_GUID-Makro im C-Code? Dann muessen Sie es manuell umformatieren.
Extrahieren aus Text ist muede
In einer Logdatei sind dutzende GUIDs verstreut, und Sie moechten sie alle finden? Mit dem blossen Auge scannen oder einen regulaeeren Ausdruck schreiben?
[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}Es funktioniert, aber jedes Mal muessen Sie es nachschlagen, um es richtig hinzubekommen.
Die Loesung: QuickGUID
All diese Schmerzpunkte lassen sich mit einem einzigen Tool loesen. QuickGUID ist ein nativer Windows-GUID-Werkzeugkasten:
- Batch-Erzeugung von v4 oder v7, bis zu 1.000 auf einmal
- 10+ Formate mit Live-Konvertierung: Standard, ohne Bindestriche, geschweifte Klammern, Base64, C-Byte-Array,
DEFINE_GUID-Makro ... alles mit Echtzeitvorschau - Intelligente Extraktion: Log oder Quellcode einfuegen, alle GUIDs automatisch erkennen und batchweise konvertieren
- Live-Dekorator: Anfuehrungszeichen, Suffix, Gross-/Kleinschreibung — global umschalten, und das Ergebnis direkt kopierbereit
Komplett kostenlos, 100% offline.
Zum Schluss
GUIDs gehoeren zu den unauffaelligsten, aber zuverlaessigsten Grundlagen der Softwareentwicklung. 128 Bit, keine zentrale Koordination noetig, kein Internet erforderlich — und trotzdem weltweit eindeutig. Dieses Design existiert seit ueber 30 Jahren und zaehlt weiterhin zu den bewaehrten Methoden fuer Identifikatoren in verteilten Systemen.
Ich hoffe, dieser Artikel hat Ihnen geholfen, die "Warums" hinter GUIDs zu verstehen.