Zum Inhalt springen

UUID/GUID Generator

Eindeutige Identifikatoren nach RFC 4122 Version 4 - bis zu 100 auf einmal, wahlweise in Großbuchstaben oder ohne Bindestriche. Erzeugt mit der Web Crypto API, vollständig in Ihrem Browser.

UUID v4
Werbung

Was ist eine UUID/GUID?

Eine UUID (Universally Unique Identifier), auch bekannt als GUID (Globally Unique Identifier), ist eine 128-Bit-Nummer zur eindeutigen Identifizierung von Informationen in Computersystemen. UUIDs werden nach standardisierten Verfahren erzeugt und sind mit extrem hoher Wahrscheinlichkeit einzigartig - ganz ohne zentrale Koordination.

Standard-Format einer UUID

Eine UUID wird als Folge von 32 hexadezimalen Ziffern dargestellt, aufgeteilt in fünf durch Bindestriche getrennte Gruppen:

550e8400-e29b-41d4-a716-446655440000

Format: 8-4-4-4-12, insgesamt 36 Zeichen inklusive Bindestriche.

UUID Version 4 - zufallsbasierte Generierung

Dieser Generator erstellt UUIDs nach Version 4, die überwiegend auf Zufallszahlen beruhen. Das ist die am häufigsten eingesetzte Variante und bietet folgende Vorteile:

Maximale Einzigartigkeit

Mit rund 5,3 × 10^36 möglichen Kombinationen ist die Wahrscheinlichkeit einer Kollision praktisch null. Selbst bei einer Milliarde UUIDs pro Sekunde würde es Milliarden von Jahren dauern, bis eine Kollision wahrscheinlich wird.

Keine Koordination erforderlich

UUIDs lassen sich unabhängig in verteilten Systemen erzeugen, ohne zentrale Autorität oder Synchronisation zwischen den Systemen.

Kryptografisch sicher

UUID v4 verwendet kryptografisch sichere Zufallszahlen, die praktisch nicht vorhersagbar sind und sich damit auch für sicherheitsrelevante Anwendungen eignen.

Plattformunabhängig

UUIDs sind standardisiert und werden von praktisch allen Programmiersprachen, Datenbanksystemen und Plattformen unterstützt.

Anwendungsbereiche von UUIDs

UUIDs finden in zahlreichen Bereichen der Softwareentwicklung Verwendung:

Datenbank-Primärschlüssel

UUIDs eignen sich als Primärschlüssel in relationalen und NoSQL-Datenbanken, besonders in verteilten Systemen.

  • Vermeidung von Auto-Inkrement-Problemen bei mehreren Datenbank-Instanzen
  • Einfache Replikation und Synchronisation zwischen Systemen
  • Keine Offenlegung von Datensatzanzahl oder Erstellungsreihenfolge
  • Kompatibilität mit PostgreSQL, MySQL, MongoDB und anderen Datenbanken

REST APIs und Microservices

In modernen API-Architekturen dienen UUIDs als eindeutige Ressourcen-Identifikatoren.

  • Eindeutige URLs für REST-Endpunkte
  • Nachverfolgung von Anfragen über mehrere Services hinweg (Request-IDs)
  • Session-IDs und Token-Generierung
  • Idempotente Operationen durch eindeutige Transaction-IDs

Verteilte Systeme und Cloud Computing

UUIDs identifizieren Ressourcen eindeutig über Server und Rechenzentren hinweg.

  • Container- und Pod-Identifikatoren in Kubernetes
  • Cloud-Ressourcen-IDs (EC2-Instanzen, S3-Buckets und andere)
  • Message-Queue-Nachrichten-IDs (RabbitMQ, Kafka)
  • Verteilte Tracing-Systeme für Performance-Monitoring

Dateisysteme und Content Management

Eindeutige Dateinamen und Ressourcen-Identifikatoren in Content-Management-Systemen.

  • Hochgeladene Dateien mit kollisionsfreien Namen speichern
  • Temporäre Dateien und Cache-Schlüssel
  • Content-Versionierung und Dokumenten-Management
  • Asset-Identifikatoren in CMS-Systemen

Softwareentwicklung und Testing

UUIDs sind nützliche Werkzeuge während Entwicklung und Test.

  • Generierung von Testdaten mit eindeutigen Identifikatoren
  • Korrelations-IDs für Logging und Debugging
  • Feature-Flags und A/B-Testing-Identifikatoren
  • Build- und Release-Identifikatoren in CI/CD-Pipelines

Sicherheit und Authentifizierung

UUIDs spielen eine Rolle in Sicherheits- und Authentifizierungssystemen.

  • Passwort-Reset-Token und Verifizierungslinks
  • API-Schlüssel und OAuth-Token-Komponenten
  • Session-Identifikatoren mit hoher Entropie
  • Nonce-Werte für kryptografische Protokolle

Funktionen des UUID Generators

  • Mehrfach-Generierung: Erstellen Sie bis zu 100 UUIDs gleichzeitig - ideal für Batch-Operationen und Testdaten.
  • Großbuchstaben-Option: Wählen Sie zwischen Kleinschreibung (Standard) und Großschreibung der hexadezimalen Ziffern.
  • Bindestriche entfernen: Erzeugen Sie UUIDs ohne Bindestriche für Systeme, die das kompakte 32-Zeichen-Format bevorzugen.
  • Einfaches Kopieren: Kopieren Sie einzelne UUIDs mit einem Klick oder alle generierten auf einmal.
  • Client-seitig: Alle UUIDs entstehen lokal in Ihrem Browser - es werden keine Daten an Server übertragen.

Technische Details und Best Practices

Bei der Verwendung von UUIDs sollten Sie folgende Punkte beachten:

Speicherplatz-Überlegungen

UUIDs benötigen mehr Speicherplatz als sequentielle Integer-IDs.

  • Als String (36 Zeichen): 36 Bytes in den meisten Datenbanken
  • Als BINARY(16): 16 Bytes - empfohlen für bessere Performance
  • Zum Vergleich: Ein INT braucht 4 Bytes, ein BIGINT 8 Bytes
  • Empfehlung: native UUID-Typen in PostgreSQL oder BINARY(16) in MySQL

Index-Performance

Die zufällige Natur von UUID v4 kann die Index-Performance beeinflussen.

  • B-Tree-Fragmentierung: Zufällige UUIDs fragmentieren stärker als sequentielle IDs
  • Für schreibintensive Anwendungen: UUID v1 oder ULID für zeitbasierte Sortierbarkeit erwägen
  • Partitionierung: UUIDs erschweren zeitbasierte Partitionierung von Tabellen
  • Gegenmaßnahme: SSD-Speicher und regelmäßige Index-Wartung

UUIDs in verschiedenen Programmiersprachen

Praktisch alle modernen Sprachen bringen native UUID-Unterstützung mit:

Python import uuid; str(uuid.uuid4())
JavaScript / Node.js crypto.randomUUID()
Java UUID.randomUUID().toString()
PHP Ramsey\Uuid\Uuid::uuid4()->toString()
C# / .NET Guid.NewGuid().ToString()

UUID im Vergleich zu anderen Identifikatoren

Es gibt verschiedene Ansätze für eindeutige Identifikatoren:

Typ Vorteile Nachteile
UUID v4 Global eindeutig, keine Koordination nötig, kryptografisch sicher Größerer Speicherbedarf, nicht sortierbar, Index-Fragmentierung
Auto-Increment Klein, schnell, sortierbar, gute Index-Performance Probleme bei verteilten Systemen, offenbart Datensatz-Anzahl
ULID Zeitlich sortierbar, kompakt, URL-sicher Weniger Werkzeug-Unterstützung, offenbart Erstellungszeit
Snowflake ID Sortierbar, 64-Bit Integer, sehr schnell Benötigt zentrale Koordination für die Machine ID
Nanoid Kompakt, URL-sicher, anpassbare Länge Weniger standardisiert, variable Länge

Häufig gestellte Fragen

Sind UUIDs wirklich eindeutig?

Für praktische Zwecke ja. UUID v4 hat 122 Zufallsbits, also rund 5,3 × 10^36 mögliche Werte. Um eine 50-prozentige Chance auf eine einzige Kollision zu erreichen, müsste man etwa eine Milliarde UUIDs pro Sekunde über 85 Jahre erzeugen.

Kann ich UUIDs in URLs verwenden?

Ja, UUIDs sind URL-sicher. Die verwendeten Zeichen (0-9, a-f und Bindestriche) benötigen keine URL-Kodierung. Sie können UUIDs direkt in REST-Pfaden einsetzen, etwa /api/products/550e8400-e29b-41d4-a716-446655440000 - praktisch für öffentliche APIs, in denen interne IDs nicht sichtbar werden sollen.

Sollte ich UUIDs mit oder ohne Bindestriche speichern?

Das hängt vom Anwendungsfall ab. Mit Bindestrichen (36 Zeichen) ist die UUID lesbarer und entspricht dem Standardformat, ohne (32 Zeichen) sparen Sie vier Bytes. In Datenbanken empfiehlt sich ein nativer UUID-Typ (PostgreSQL) oder BINARY(16) (MySQL) - das braucht nur 16 Bytes und ist am schnellsten. Die Bindestriche können Sie dann bei der Ausgabe ergänzen.

Was ist der Unterschied zwischen UUID und GUID?

Beide bezeichnen im Wesentlichen dasselbe Konzept. "UUID" ist der standardisierte Begriff nach RFC 4122, "GUID" wird vor allem in Microsoft-Technologien verwendet. Beide folgen derselben 128-Bit-Struktur; Microsoft nutzt intern teils eine andere Byte-Reihenfolge, die String-Darstellung ist jedoch identisch.

Kann ich aus einer UUID Informationen ableiten?

Bei UUID v4 praktisch nicht, da sie überwiegend aus Zufallsdaten besteht. Erkennbar ist die Version an der "4" an Position 15, etwa 550e8400-e29b-41d4-a716-446655440000. Andere Versionen wie v1 oder v6 enthalten Zeitstempel und MAC-Adressen - v4 ist daher die richtige Wahl, wenn keine Metadaten nach außen dringen sollen.

Wie sicher ist dieser UUID Generator?

Der Generator nutzt die Web Crypto API (crypto.getRandomValues()), die kryptografisch sichere Zufallszahlen liefert. Alle UUIDs entstehen lokal in Ihrem Browser - es werden keine Daten an einen Server übertragen. Die Ausgabe entspricht dem RFC 4122 Standard für UUID v4.

Ob Sie eindeutige Datensatz-IDs für Ihre Datenbank brauchen, Token generieren oder Testdaten erstellen - der Generator liefert standardkonforme UUIDs nach RFC 4122, ohne Registrierung und ohne Installation. Alles wird lokal in Ihrem Browser erzeugt.

Weitere Generatoren

Alle Generatoren anzeigen