TIL: UUID-Versionen und wann man sie verwendet
(ntietz.com)-
Verschiedene UUID-Versionen
- UUID Version 1 (v1): Wird aus Zeitstempel, monotonem Zähler und MAC-Adresse erzeugt
- UUID Version 2 (v2): Für Security-IDs reserviert. Details dazu sind nicht bekannt
- UUID Version 3 (v3): Wird aus dem MD5-Hash der bereitgestellten Daten erzeugt. DNS und URL sind als Kandidatendaten vorgeschlagen
- UUID Version 4 (v4): Wird aus vollständig zufälligen Daten erzeugt. Das ist die UUID, an die die meisten Leute denken
- UUID Version 5 (v5): Wird aus dem SHA1-Hash der bereitgestellten Daten erzeugt. Wie bei v3 sind DNS und URL als Kandidatendaten vorgeschlagen
- UUID Version 6 (v6): Wird aus Zeitstempel, monotonem Zähler und MAC-Adresse erzeugt. Es sind dieselben Daten wie bei v1, aber die Reihenfolge wurde geändert, damit nach Erstellungszeit sortiert werden kann
- UUID Version 7 (v7): Wird aus Zeitstempel und zufälligen Daten erzeugt
- UUID Version 8 (v8): Vollständig benutzerdefinierbar (außer den erforderlichen Versions-/Variantenfeldern)
-
Wann man sie verwendet
- v4: Verwenden, wenn eine zufällige ID benötigt wird. Eine gute Standardwahl
- v7: Verwenden, wenn Sortierbarkeit nötig ist. Eignet sich zum Beispiel gut als Datenbankschlüssel
- v5 oder v8: Verwenden, wenn eindeutige Daten in die UUID aufgenommen werden sollen. Wenn nötig, merkt man das schon
-
Erläuterungen zu den anderen Versionen
- v7 ist eine verbesserte Version von v1 und v6; wenn möglich, sollte man v7 verwenden. Deshalb werden v1 und v6 normalerweise nicht verwendet
- v2 ist für sicherheitsbezogene Zwecke reserviert. Wenn man es verwendet, kennt man die Details wahrscheinlich nicht
- v3 wurde durch v5 ersetzt. v5 verwendet einen stärkeren Hash
GN⁺-Zusammenfassung
- UUIDs gibt es in verschiedenen Versionen, und jede Version wurde für einen bestimmten Einsatzzweck entworfen
- v4 und v7 werden am häufigsten verwendet, während v5 und v8 zum Einsatz kommen, wenn es spezielle Datenanforderungen gibt
- Welche UUID-Version man wählt, hängt vom Einsatzzweck ab; wenn Sortierbarkeit nötig ist, ist v7 sinnvoll, und wenn eine zufällige ID benötigt wird, ist v4 eine gute Wahl
- Wenn man die verschiedenen UUID-Versionen versteht, lässt sich leichter die passende UUID für ein Projekt auswählen
1 Kommentare
Hacker-News-Kommentare
UUID Version 2 (v2) ist für Security-IDs reserviert, und die Details dazu sind nicht besonders bekannt
Die Details von UUID v2 lassen sich im RFC-9562-Dokument leicht finden
Der Zeitstempel von UUID v7 ist in Databend nützlich, um Metadatendateien schnell zu finden
Es wäre gut, wenn es einen Standard für kurze UUIDs gäbe
73WakrfVbNJBaAmhQtEeDvoderbK7nP9xMDer Zweck von UUID2 ist schwer zu verstehen
UUID v4 ist einfach nur ein Generator für zufällige Bytes
MAC-basierte Versionen sollte man besser nicht verwenden
Eine UUID mit SHA256-Daten und einem Zähler könnte nützlich sein
Es ist empfehlenswert, v7 zu verwenden
Das war eine interessante Lektüre