3 Punkte von GN⁺ 2024-08-27 | 1 Kommentare | Auf WhatsApp teilen
  • 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

 
GN⁺ 2024-08-27
Hacker-News-Kommentare
  • UUID Version 2 (v2) ist für Security-IDs reserviert, und die Details dazu sind nicht besonders bekannt

    • weil das RFC-Dokument unklar formuliert ist
    • Im Dokument der Open Group findet man mehr Informationen
    • Es gibt auch UUIDs der „Version 0“, was später dazu beigetragen hat, dass andere Versionen kompatibel blieben
    • Die Forschungsergebnisse sind auf GitHub zu finden
  • Die Details von UUID v2 lassen sich im RFC-9562-Dokument leicht finden

    • Es ist als Teil von DCE definiert, und über die entsprechenden Links kann man die Details nachlesen
    • Es ist wichtig, auf die Links zu klicken
  • Der Zeitstempel von UUID v7 ist in Databend nützlich, um Metadatendateien schnell zu finden

    • Das verbessert die Arbeitsgeschwindigkeit auf AWS S3 erheblich
    • Der zugehörige PR ist auf GitHub zu finden
  • Es wäre gut, wenn es einen Standard für kurze UUIDs gäbe

    • z. B. 73WakrfVbNJBaAmhQtEeDv oder bK7nP9xM
    • Es werden kurze, leicht merkbare IDs benötigt
  • Der Zweck von UUID2 ist schwer zu verstehen

    • Bei Xandr bin ich UUID2 nur begegnet, wenn es um Anfragen zum Löschen personenbezogener Daten ging
    • Selbst nach dem Lesen des Wikipedia-Artikels ist schwer nachzuvollziehen, warum verschiedene Arten von UUIDs nötig sind
    • Ich frage mich, ob die Kombination mit dem Mac-Code die Zufälligkeit von UUID2 erhöht oder ob es einen anderen Grund gibt
    • Wenn man für die Privatsphäre sehr lange Kennungen verwendet, kann man UUIDs nutzen, die sich nicht doppeln
  • UUID v4 ist einfach nur ein Generator für zufällige Bytes

    • Es ist effizienter, einfach zufällige Bytes zu erzeugen und Bindestriche, Versionsinformationen usw. wegzulassen
  • MAC-basierte Versionen sollte man besser nicht verwenden

    • Theoretisch gilt das für alle Versionen außer v4 und v7
    • Besonders v1 ist am schlimmsten, und auch das MD5 von v3 ist sehr schwach
  • Eine UUID mit SHA256-Daten und einem Zähler könnte nützlich sein

    • Sie könnte ähnlich wie PBKDF2 als Kennung zum Schutz der Privatsphäre verwendet werden
  • Es ist empfehlenswert, v7 zu verwenden

    • Security-Experten könnten anderer Meinung sein
  • Das war eine interessante Lektüre

    • Man kann jeden Tag etwas Neues lernen