onlinetools.dev

Генератор UUID

Генерируйте UUID v4/v7, ULID и Nano ID — по одному или пачкой

Работает локально
loading…
Об этом инструменте

Генерируйте универсальные уникальные идентификаторы в четырёх вариантах: UUID v4 (полностью случайный, повседневный выбор по умолчанию), UUID v7 (упорядоченный по времени, современный выбор для ключей баз данных), ULID (упорядоченный по времени с компактной записью Crockford Base32) и Nano ID (короткий, удобный для URL). Генерируйте один или до тысячи за раз — по одному на строку, готовые для вставки в seed-скрипт.

Случайность берётся из Web Crypto API (crypto.getRandomValues) — криптографически стойкого источника, а не Math.random. Генерация локальная, а значит, идентификаторы никому больше не известны, нигде не логируются и доступны офлайн.

Если вы выбираете формат ID для новой системы: v7 и ULID сортируются по времени создания, что радует B-tree-индексы и делает идентификаторы примерно хронологическими в логах; v4 ничего не раскрывает о времени создания — иногда это ровно то, что нужно.

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

В чём разница между UUID v4 и v7?
v4 — это 122 случайных бита. v7 (RFC 9562) начинается с 48-битной метки времени в Unix-миллисекундах, за которой идут случайные биты, поэтому идентификаторы, созданные позже, и сортируются позже. Для первичных ключей баз данных v7 обычно улучшает локальность вставок и размер индекса; v4 остаётся уместным там, где порядок не важен или время создания не должно утекать.
Могут ли два сгенерированных UUID совпасть?
При 122 случайных битах вероятность настолько мала, что проектировать защиту от неё не имеет смысла: чтобы получить хотя бы призрачный шанс, пришлось бы генерировать миллиарды идентификаторов в секунду десятилетиями. На практике коллизии возникают из-за багов (переиспользованный seed, скопированные строки), а не из-за случайности.
Почему выбрать ULID вместо UUID v7?
Они решают одну и ту же задачу. ULID — это 26 символов регистронезависимого Crockford Base32, короче и чище в URL и логах; v7 сохраняет стандартную 36-символьную форму UUID, которую уже принимает каждая база данных и библиотека. Выбирайте тот, который ваша экосистема поддерживает более нативно.
Можно ли использовать эти идентификаторы как секреты или токены?
Случайность криптографически стойкая, но идентификаторы обычно отображаются, логируются и индексируются — то есть считаются публичными. Для сессионных токенов или API-ключей сгенерируйте отдельный секрет минимум со 128 случайными битами и обращайтесь с ним как с паролем.
Похожие инструменты