Której wersji UUID powinienem użyć?+−
Dla większości ogólnych identyfikatorów użyj v4 - jest losowa i nie niesie żadnych informacji. Jeśli UUID ma być kluczem głównym lub indeksem bazy danych, zwykle lepszy jest v7, ponieważ sortuje się chronologicznie, co utrzymuje szybkość indeksów. Użyj v5, gdy to samo wejście (np. adres URL lub nazwa) ma zawsze dawać ten sam UUID; v1 stosuj tylko wtedy, gdy naprawdę potrzebujesz osadzonego znacznika czasu, pamiętając, że może on ujawnić moment utworzenia.
Jaka jest różnica między v3 a v5?+−
Obie są deterministyczne: przy tej samej przestrzeni nazw i nazwie zawsze dają ten sam UUID. Jedyna różnica to funkcja skrótu - v3 używa MD5, v5 używa SHA-1. Ponieważ MD5 jest złamana kryptograficznie, v5 jest zalecanym wyborem dla wszystkiego nowego; v3 istnieje głównie dla kompatybilności ze starszymi systemami.
Dlaczego v7 sortuje się chronologicznie?+−
UUID w wersji v7 zaczyna się od 48-bitowego znacznika czasu Unix w milisekundach przed bitami losowymi, więc gdy UUID są porównywane jako zwykłe ciągi znaków (lub bajty), te utworzone wcześniej sortują się przed tymi utworzonymi później. Losowe UUID v4 nie mają takiej struktury, co może fragmentować indeksy baz danych, ponieważ nowe losowe wartości są wstawiane w całym zakresie kluczy, a nie na końcu.
Czy UUID generowane tutaj są losowe w sensie kryptograficznym?+−
Tak. v4 oraz losowe części v1 i v7 wykorzystują crypto.getRandomValues z Web Crypto API - kryptograficznie bezpieczny generator liczb losowych wbudowany w przeglądarkę, a nie Math.random(). Nic nie jest generowane na serwerze ani nigdzie wysyłane.
Jakie jest prawdopodobieństwo kolizji dwóch losowych identyfikatorów UUID v4?+−
Astronomicznie niskie. UUID v4 ma 122 losowe bity (6 bitów jest stałych i oznacza wersję oraz wariant), co daje około 5,3 x 10^36 możliwych wartości. Nawet generując miliard identyfikatorów UUID na sekundę przez 100 lat, prawdopodobieństwo jakiejkolwiek kolizji nadal byłoby mniejsze niż jeden na miliard - dlatego v4 jest uznawany za wiarygodny unikalny identyfikator bez potrzeby centralnego rejestru.
Czy UUID to to samo co GUID?+−
W praktyce tak - GUID (Globally Unique Identifier) to nazwa nadana przez Microsoft temu samemu 128-bitowemu formatowi identyfikatora zdefiniowanemu w standardzie UUID (RFC 4122). Niektóre środowiska zapisują go wielkimi literami lub w nawiasach klamrowych ({...}), ale bazowa wartość i struktura są identyczne, więc UUID wygenerowany tutaj jest również prawidłowym GUID-em.