UUID часто используется для генерации уникальных идентификаторов в распределенных системах, где нет централизованного органа для координации.
UUID генерируются таким образом, что вероятность их повторения практически равна нулю, даже в распределенных системах.
UUID обычно представляется в виде 36-символьной строки, состоящей из шестнадцатеричных цифр, разделенных дефисами.
Виды UUID:
-
UUID — это универсальный уникальный идентификатор — 128-битное число, используемое для уникальной идентификации чего-либо. Обычно оно представлено в виде 32-символьной шестнадцатеричной строки с дефисами.
-
UUID v3 — это UUID на основе пространства имён, то есть он генерируется с использованием пространства имён и имени. Пространство имён само по себе является UUID, а имя может быть любой строкой. v3 очень похож на v5, но использует MD5 вместо SHA-1. Это означает, что v3 быстрее, но менее безопасен.
-
UUID v4 — это случайный UUID, то есть он генерируется с использованием случайных байтов вместо временной метки или других данных. Если эти данные криптографически безопасны, то они также являются криптографически безопасным случайным UUID. Если нет, то этот UUID может не подходить для использования в контекстах, чувствительных к безопасности.
-
UUID v5 — это UUID на основе пространства имён, то есть он генерируется с использованием пространства имён и имени. Пространство имён само по себе является UUID, а имя может быть любой строкой. v5 очень похож на v3, но использует SHA-1 вместо MD5. Это означает, что v5 медленнее, но более безопасен.
-
UUID v6 — это совместимая с полями версия UUIDv1, переупорядоченная для улучшения локальности БД. Ожидается, что UUIDv6 будет в основном использоваться в контекстах, где есть существующие UUID v1.
-
UUID v7 — это новый проект IETF ID на основе времени. Он содержит 48 бит данных временной метки, 74 бита случайных данных и 6 бит данных версии и варианта. Временная метка помещается в начало ID, что позволяет эффективно сортировать и сравнивать без дополнительных данных. Несмотря на меньшее количество случайных битов, чем UUID v4, UUID v7 по-прежнему устойчив к коллизиям.
-
Автор Cuid решил отказаться от библиотеки в пользу Cuid2. Cuid — это короткая случайная строка, которая должна использоваться в качестве уникального идентификатора. Cuid не гарантируют уникальность, но они вряд ли будут конфликтовать. Они также очень короткие, что делает их эффективными для использования в URL-адресах или в качестве ключей базы данных.
-
Cuid2 — это следующее поколение Cuid, которое уже более десяти лет используется в тысячах приложений, и при этом не было зафиксировано ни одного подтверждённого случая коллизии.
-
ULID — это URL-френдли, безопасный, лексикографически сортируемый генератор уникальных идентификаторов. ULID — это канонические строки из 26 символов, но они совместимы с UUID на 128 бит.
-
Nano ID — это безопасный, уникальный генератор идентификаторов, совместимый с URL. Длина Nano ID по умолчанию составляет 21 символ, но её можно изменить в зависимости от требований к использованию.