Какую версию UUID использовать?+−
Для большинства универсальных идентификаторов используйте v4 - он случаен и не несёт информации. Если UUID станет первичным ключом или индексом базы данных, обычно лучше v7, поскольку он сортируется хронологически, что сохраняет индексы быстрыми. Используйте v5, когда одни и те же входные данные (например, URL или имя) должны всегда давать один UUID; используйте v1, только если вам нужна встроенная метка времени, учитывая, что она может раскрыть момент создания.
В чём разница между v3 и v5?+−
Обе версии детерминированы: при одинаковых пространстве имён и имени они всегда дают один UUID. Единственное отличие - хеш-функция: v3 использует MD5, v5 - SHA-1. Поскольку MD5 криптографически скомпрометирован, для всего нового рекомендуется v5; v3 существует в основном для совместимости со старыми системами.
Почему v7 сортируется хронологически?+−
UUID v7 начинается с 48-битной метки времени Unix в миллисекундах перед случайными битами, поэтому при сравнении UUID как обычных строк (или байтов) созданные раньше оказываются перед созданными позже. У случайных UUID v4 такой структуры нет, что может фрагментировать индексы базы данных, поскольку новые случайные значения вставляются по всему диапазону ключей, а не в конец.
Являются ли сгенерированные здесь UUID криптографически случайными?+−
Да. v4 и случайные части v1 и v7 используют crypto.getRandomValues Web Crypto API - криптографически стойкий генератор случайных чисел, встроенный в браузер, а не Math.random(). Ничего не генерируется на сервере и никуда не отправляется.
Насколько вероятно совпадение двух случайных UUID версии 4?+−
Астрономически маловероятно. UUID v4 содержит 122 случайных бита (6 бит фиксированы для обозначения версии и варианта), что даёт около 5,3 x 10^36 возможных значений. Даже если генерировать по миллиарду UUID в секунду на протяжении 100 лет, вероятность любого совпадения останется менее одной миллиардной - поэтому v4 считается надёжным уникальным идентификатором без необходимости центрального реестра.
Это одно и то же - UUID и GUID?+−
На практике да - GUID (Globally Unique Identifier) - это название Microsoft для того же 128-битного формата идентификатора, определённого стандартом UUID (RFC 4122). В некоторых средах его записывают заглавными буквами или в фигурных скобках ({...}), но базовое значение и структура идентичны, поэтому UUID, созданный здесь, также является действительным GUID.