Генератор UUID и ULID: v4, v7, v1, v5, v3
Генерация UUID v1, v3, v4, v5, v7 и ULID пачкой, ключи идемпотентности, разбор версии и времени создания.
Данные обрабатываются в браузере и никуда не отправляются
Ввод
Результат
Здесь появится результат
Введите данные слева - результат появится сразу
Как пользоваться
Выберите тип идентификатора - один или несколько создаются сразу, а кнопка «Сгенерировать ещё» делает новую партию. UUID v4 - случайный, самый распространённый; UUID v7 содержит время создания и сортируется, поэтому хорош для ключей в базе данных; v5 и v3 всегда дают одинаковый результат для одного имени в одном пространстве имён; ULID - компактная сортируемая запись из 26 символов. Запись можно выбрать: строчные или заглавные буквы, без дефисов, в фигурных скобках или как urn:uuid:.
В режиме «Разбор» вставьте идентификаторы по одному в строке - инструмент покажет версию, вариант, время создания (для v1, v7 и ULID), число и сокращённую запись в Base64URL. Такой UUID удобен и как ключ идемпотентности: передайте его в заголовке Idempotency-Key, чтобы повторный запрос не создал дубль.
Частые ошибки
Вот что чаще всего путают при работе с идентификаторами:
UUID v4 в первичном ключе базы данных
Случайные значения вставляются в индекс в произвольные места, из-за чего растёт его фрагментация и падает скорость вставки при больших таблицах. Для первичных ключей лучше UUID v7 или ULID, сортируемые по времени.
UUID не является секретом
Случайный v4 трудно угадать, но UUID нельзя считать токеном авторизации: для секретов нужны специально предназначенные для этого токены нужной длины. А v1 и v7 вообще содержат время создания.
v3 и v5 - не случайные
Эти версии - хеш от пространства имён и имени: одинаковые входные данные дают один и тот же UUID. Это удобно для идентификаторов, которые должны воспроизводиться, и неверно, если нужна уникальность.
Разные записи одного UUID
Один и тот же UUID записывают с дефисами и без, в верхнем и нижнем регистре, в фигурных скобках (GUID в Windows). Для сравнения приводите значения к одной записи.
GUID и UUID - одно и то же
GUID - название UUID в Microsoft. Отличие лишь в привычной записи (заглавные буквы и фигурные скобки) и порядке байт в бинарном представлении .NET.
Идемпотентность требует хранения ключа
Idempotency-Key работает, только если сервер запоминает ключ и результат первого запроса на какое-то время. Один UUID на одну операцию: на повтор той же операции отправляйте тот же ключ, на новую - новый.
Частые вопросы
Отправляются ли мои идентификаторы на сервер?
Нет - 100%. Сайт целиком статический, у него нет серверной части. Идентификаторы создаются в вашем браузере генератором случайных чисел вашей системы и никуда не передаются.
Чем отличаются UUID v4 и v7?
v4 состоит из случайных битов, v7 - из времени создания в миллисекундах и случайных битов. v7 сортируется по времени, поэтому лучше подходит для ключей в базе данных и логов; v4 проще и не раскрывает время создания.
Что такое ULID и чем он отличается от UUID?
ULID - это 128 бит (48 бит времени и 80 случайных), записанные 26 символами Crockford Base32. Он сортируется как строка и короче записи UUID. Преобразуется в UUID без потерь: оба хранят 16 байт.
Могут ли два UUID v4 совпасть?
Теоретически да, практически - нет: из 122 случайных бит вероятность повтора при миллиарде идентификаторов в секунду в течение столетий ничтожна. Следите лишь за тем, чтобы генератор был криптографическим, как в браузере.
Как использовать UUID как ключ идемпотентности?
Сгенерируйте UUID на стороне клиента перед первой попыткой и передавайте его в заголовке Idempotency-Key. При повторе после таймаута отправьте тот же ключ - сервер вернёт результат первой попытки, а не создаст дубль.
Что значит вариант и версия в UUID?
Версия (4, 7, 5...) - способ создания, она записана в первой цифре третьей группы. Вариант определяет раскладку остальных битов: у современных UUID это RFC 4122 / RFC 9562 (вторая цифра четвёртой группы 8, 9, a или b).
Можно ли узнать время создания UUID?
Для версий 1 и 7 и для ULID - да: время хранится в самом идентификаторе, инструмент покажет его в режиме «Разбор». У v4, v3 и v5 времени нет.
Что такое nil и max UUID?
Nil - все нули, Max - все единицы. Это служебные значения (например, «идентификатор не задан»), в реальных данных их обычно не используют.
Похожие инструменты
Курс «Проектирование API и интеграций»
Глубокое погружение в REST, gRPC, SOAP, проектирование баз данных и брокеры сообщений (Kafka, RabbitMQ). Делегирование рутины нейросетям (ИИ). Перестанете бояться технических собеседований и начнете говорить с разработчиками на одном языке. Курс собран так, чтобы пробить зарплатный потолок и вырасти в грейде - ученики тому подтверждение.
Перейти к курсу на Stepik