Генератор UUID
Генерируйте UUID v4/v7, ULID и Nano ID — по одному или пачкой
Об этом инструменте
Генерируйте универсальные уникальные идентификаторы в четырёх вариантах: 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 случайными битами и обращайтесь с ним как с паролем.