Welche UUID-Version sollte ich verwenden?+−
Für die meisten allgemeinen IDs verwenden Sie v4 - sie ist zufällig und trägt keine Information. Wird die UUID ein Datenbank-Primärschlüssel oder Index, ist v7 meist besser, da sie chronologisch sortiert und Indizes schnell hält. Verwenden Sie v5, wenn dieselbe Eingabe (z. B. eine URL oder ein Name) immer dieselbe UUID ergeben soll; v1 nur, wenn Sie gezielt einen eingebetteten Zeitstempel benötigen - beachten Sie, dass er den Erstellungszeitpunkt preisgeben kann.
Was ist der Unterschied zwischen v3 und v5?+−
Beide sind deterministisch: Bei gleichem Namensraum und Namen erzeugen sie immer dieselbe UUID. Der einzige Unterschied ist die Hash-Funktion - v3 nutzt MD5, v5 nutzt SHA-1. Da MD5 kryptografisch gebrochen ist, ist v5 die empfohlene Wahl für alles Neue; v3 existiert hauptsächlich zur Kompatibilität mit älteren Systemen.
Warum sortiert v7 chronologisch?+−
Eine v7-UUID beginnt vor den Zufallsbits mit einem 48-Bit-Unix-Millisekunden-Zeitstempel, sodass beim Vergleich als reine Zeichenketten (oder Bytes) früher erzeugte UUIDs vor später erzeugten stehen. Zufällige v4-UUIDs haben keine solche Struktur, was Datenbankindizes fragmentieren kann, da neue Zufallswerte über den gesamten Schlüsselbereich statt am Ende eingefügt werden.
Sind die hier erzeugten UUIDs kryptografisch zufällig?+−
Ja. v4 sowie die Zufallsanteile von v1 und v7 nutzen crypto.getRandomValues der Web Crypto API - einen kryptografisch sicheren, in Ihrem Browser eingebauten Zufallszahlengenerator, nicht Math.random(). Nichts wird auf einem Server erzeugt oder an einen Server gesendet.
Wie wahrscheinlich ist es, dass zwei zufällige v4-UUIDs kollidieren?+−
Astronomisch unwahrscheinlich. Eine v4-UUID hat 122 zufällige Bits (6 Bits sind fest, um Version und Variante zu kennzeichnen), was etwa 5,3 x 10^36 mögliche Werte ergibt. Selbst wenn 100 Jahre lang eine Milliarde UUIDs pro Sekunde generiert würden, läge die Wahrscheinlichkeit einer Kollision immer noch bei weniger als eins zu einer Milliarde - deshalb gilt v4 als eindeutiger Bezeichner, ohne dass ein zentrales Register nötig ist.
Ist eine UUID dasselbe wie eine GUID?+−
In der Praxis ja - GUID (Globally Unique Identifier) ist Microsofts Bezeichnung für dasselbe 128-Bit-Identifikatorformat, das im UUID-Standard (RFC 4122) definiert ist. Manche Umgebungen schreiben sie in Großbuchstaben oder in geschweiften Klammern ({...}), aber der zugrunde liegende Wert und die Struktur sind identisch, sodass eine hier generierte UUID auch eine gültige GUID ist.