🆔 UUID Tools

Tools for generating, decoding and analyzing UUIDs

Was sind UUIDs?

UUID (Universell Eindeutiger Bezeichner) ist ein standardisiertes Bezeichnerformat, das so konzipiert ist, dass es global in Raum und Zeit eindeutig ist. UUIDs sind 128-Bit-Werte, die typischerweise als 32 hexadezimale Ziffern dargestellt werden, aufgeteilt in fünf Gruppen, die durch Bindestriche getrennt sind: 123e4567-e89b-12d3-a456-426614174000.

UUIDs sind durch den Standard RFC 9562 definiert (der den früheren RFC 4122 ersetzt) und werden in Computersystemen verwendet, um Informationen ohne zentrale Registrierung oder Koordination zu identifizieren.

Format einer UUID

Alle UUIDs teilen ein gemeinsames Format, das aus 36 Zeichen besteht (32 hexadezimale Ziffern plus 4 Bindestriche), organisiert nach dem Muster:

xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx

Wobei:

  • x eine beliebige hexadezimale Ziffer ist (0-9, a-f)
  • M die Version der UUID angibt (1-7)
  • N die Variante der UUID angibt (typischerweise 8, 9, A oder B für moderne UUIDs)

Vergleich der UUID-Versionen

VersionNameGenerierungsmethodeNach Zeit sortiertAnwendungsfälle
UUID v1ZeitstempelAktueller Zeitstempel + Knoten-ID (MAC)Ja (teilweise)Protokolle, verteilte Systeme
UUID v3Namensbasiert (MD5)MD5-Hash von Namensraum + NameNeinKonsistente IDs für dieselbe Eingabe
UUID v4ZufälligZufallszahlen oder PseudozufallszahlenNeinAllgemeiner Zweck, am häufigsten verwendet
UUID v5Namensbasiert (SHA-1)SHA-1-Hash von Namensraum + NameNeinKonsistente IDs mit stärkerem Hash
UUID v6Neu geordneter ZeitstempelZeitstempel (für Sortierung geordnet)JaDatenbankschlüssel, zeitlich sortierte Protokolle
UUID v7Unix-ZeitstempelUnix-Zeitstempel + ZufallsdatenJaModerne sortierbare Bezeichner
Nil UUIDNull-UUIDAlle NullenN/ASonderwert, nicht initialisierter Marker

Vorteile von UUIDs

  • Keine Koordination erforderlich: IDs ohne zentrale Koordination generieren
  • Globale Eindeutigkeit: Extrem geringe Wahrscheinlichkeit von Kollisionen
  • Feste Länge: Konsistente Darstellung mit 36 Zeichen
  • Plattformübergreifend: Kompatibel mit nahezu allen Programmiersprachen
  • Vielseitig: Verschiedene Versionen für unterschiedliche Anwendungsfälle

Nicht standardisierte Alternativen zu UUIDs

ID-TypBeschreibungVorteileNachteile
GUIDMicrosoft-Implementierung von UUIDFunktional äquivalent zu UUIDEinige Implementierungsunterschiede bei älteren Systemen
ULIDUniversell eindeutiger lexikografisch sortierbarer BezeichnerLexikografisch sortierbar, Zeitstempel zuerst, nicht groß-/kleinschreibungssensitivNeuere Technologie, weniger weit verbreitet
Snowflake IDVerteiltes ID-System von TwitterNach Zeit sortierbar, kompakt (64 Bit)Erfordert zentrale Koordination
CUID/CUID2Kollisionsresistente IDsKurz, geeignet für clientseitige GenerierungKein offizieller Standard
Nano IDGenerator für kleine, sichere und URL-freundliche eindeutige ZeichenfolgenKleiner als UUID, konfigurierbares AlphabetNicht standardisiert
Short UUIDKürzere Kodierung von Standard-UUIDsKompaktere DarstellungErfordert Konvertierung zu/von Standard-UUID
Nil UUIDUUID mit allen Bits auf NullSpezielle semantische BedeutungNicht eindeutig (als Sonderwert verwendet)
Minecraft UUIDUUIDs mit oder ohne BindestricheKompatibel mit Standard-UUIDsNur Formatunterschiede

Praktische Anwendungen

  • Primärschlüssel in Datenbanken: Besonders in verteilten oder replizierten Datenbanken
  • Verteilte Systeme: Entitäten in mehreren Systemen identifizieren
  • Webanwendungen: Sitzungs-IDs, anonymes Benutzer-Tracking
  • Content-Management: Bezeichner für Dokumente und Medien
  • APIs: Bezeichner für Anfragen und Transaktionen zur Nachverfolgung und Fehlerbehebung
  • Internet der Dinge: Geräteidentifikation ohne zentrale Registrierung
  • Daten-Synchronisation: Datensätze in mehreren Datenspeichern identifizieren
  • Software-Lizenzen: Eindeutige Produkt- oder Lizenzschlüssel