Идентификаторы · UUID, NanoID, ULIDГенератор UUID
Генерирует UUID v4, v7, v1 и Nil, а также NanoID и ULID — до 50 за раз. Проверяет чужой UUID: версия, вариант, время создания у v1 и v7. Всё в браузере.
01
Настройки генератора
Формат
Количество
Регистр
02
Результат
Нажмите «Сгенерировать» — здесь появятся идентификаторы.
03
Проверка и разбор UUID
версия, вариант и время создания04
Об идентификаторах: какой формат выбрать
UUID — 128-битный идентификатор, уникальный без центрального реестра: два сервера выпускают значения одновременно, и совпадение практически исключено. Стандарт — RFC 9562, обновивший RFC 4122 в 2024 году. Версии различаются тем, что внутри: случайность (v4), время и узел (v1), Unix-время и случайность (v7). Рядом — два нестандартных, но популярных формата: короткий NanoID и сортируемый ULID.
UUID v4
По умолчанию550e8400-e29b-41d4-a716-446655440000
Полностью случайный: 122 случайных бита и шесть служебных — цифра версии 4 и вариант 8, 9, a или b. Значение по умолчанию в большинстве библиотек и баз. Ничего не раскрывает, но и порядка не имеет: отсортировать по времени создания нельзя.
UUID v7 и сортировка
RFC 9562017f22e2-79b0-7cc3-98c4-dc0c0c07398f
Первые 48 бит — Unix-время в миллисекундах, поэтому новые значения больше старых и вставляются в конец индекса. Случайный v4 в роли первичного ключа разбрасывает вставки по всему индексу: страницы делятся, индекс разрастается. Для ключей больших таблиц берут v7.
UUID v1
Устаревшийc232ab00-9414-11ec-b3c8-9f6bdeced846
Время с точностью до 100 нс от 1582 года и узел — исторически MAC-адрес. Время записано младшими битами вперёд, поэтому строки v1 по времени не сортируются; это исправляют v6 и v7. Здесь узел случайный, с multicast-битом, как требует RFC.
NanoID
Для адресовV1StGXR8_Z5jdHi6B-myT
21 символ вместо 36, алфавит из 64 знаков, безопасный для URL без кодирования, — и 126 случайных бит, чуть больше, чем у v4. Длина и алфавит настраиваются: короче — компактнее, но меньше запас до совпадения. Времени внутри нет, порядок случайный.
ULID и UUID v7
Сортируемые01ARYZ6S41TSV4RRFFQ69G5FAV
Оба начинаются с 48 бит времени в миллисекундах и сортируются по созданию. v7 — стандарт RFC 9562 и ложится в колонку uuid; ULID — отдельная спецификация, зато короче в записи (26 символов Crockford Base32) и не путается при чтении: в алфавите нет I, L, O и U.
Коллизии
Без магии2¹²² ≈ 5,3 × 10³⁶ значений v4
Чтобы вероятность хотя бы одного совпадения среди v4 дошла до половины, нужно около 2,7 × 10¹⁸ значений — миллиард в секунду на протяжении 86 лет. Условие одно: случайность должна быть криптографической, как у crypto.getRandomValues здесь. Плохой генератор опаснее любой математики.
05
Частые вопросы
Обновлено