Идентификаторы · UUID, NanoID, ULIDГенератор UUID

Генерирует UUID v4, v7, v1 и Nil, а также NanoID и ULID — до 50 за раз. Проверяет чужой UUID: версия, вариант, время создания у v1 и v7. Всё в браузере.

01Настройки02Результат03Проверка04Об идентификаторах05Вопросы06Похожие
01

Настройки генератора

Формат
Количество
Регистр
02

Результат

Нажмите «Сгенерировать» — здесь появятся идентификаторы.
03

Проверка и разбор UUID

версия, вариант и время создания
Вставьте UUID
Корректный UUID
Версияv7 · на основе времениВариант: RFC 9562 (бывший RFC 4122)
Создан2022-02-22 19:22:22.000 UTC—
Как прочитано017f22e2-79b0-7cc3-98c4-dc0c0c07398f→017f22e2-79b0-7cc3-98c4-dc0c0c07398f
Разбор по полям
unix_ts_ms
017f22e279b0
rand_a
cc3
var + rand_b
98c4dc0c0c07398f
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 9562
017f22e2-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

Частые вопросы

Выберите формат и нажмите генерацию — можно получить сразу до пятидесяти значений и скопировать их списком или сохранить файлом. Доступны UUID версий 4, 7 и 1, нулевой UUID для заведомо пустого значения, а также соседние форматы: короткий NanoID для адресов и сортируемый ULID из 26 символов.

Обновлено

«» добавлен в избранное