Генерация криптостойких UUID v4 и GUID: энтропия Web Crypto API
Генератор UUID и GUID онлайн — инструмент генерации универсальных уникальных идентификаторов по спецификации RFC 4122. Идентификаторы UUID (Universally Unique Identifier) используются для первичных ключей распределенных баз данных, сессий пользователей, транзакционных ID и сообщений в очередях брокеров Kafka/RabbitMQ.
Генератор использует аппаратный генератор псевдослучайных чисел Web Crypto API (`crypto.getRandomValues`), гарантируя криптографическую стойкость и математическую невозможность коллизий. Поддерживается пакетная генерация, выбор регистра и форматов на 100% в вашем браузере.
Архитектура и математическая формула
Формат UUID v4: xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx (128 бит энтропии)
122 случайных бита генерируются криптографическим источником. 13-й полубайт фиксирован цифрой '4' (версия стандарта), а бит 'y' указывает на вариант по стандарту (значения 8, 9, a или b).
Лучшие практики и ключевые рекомендации
- Никогда не используйте `Math.random()` для генерации идентификаторов: Стандартный псевдогенератор `Math.random()` предсказуем и подвержен риску дублирования ID в многопоточных средах. Используйте исключительно `crypto.randomUUID()`.
- Учитывайте фрагментацию B-Tree индексов в реляционных СУБД: Случайные UUID v4 ухудшают производительность вставок (`INSERT`) в большие таблицы с B-Tree индексами. Для СУБД лучше подходят упорядоченные во времени UUID v7 или ULID.
- Храните UUID в базах данных в бинарном формате UUID (16 байт): Сохранение UUID в виде 36-символьной строки `VARCHAR(36)` занимает в 2,25 раза больше места на диске и в оперативной памяти кэша СУБД, чем компактный тип `UUID` / `BINARY(16)`.
- Применяйте UUID для исключения перебора ID злоумышленниками: Автоинкрементные целочисленные ID (1, 2, 3...) в публичных API позволяют конкурентам сканировать всю базу клиентов. UUID полностью маскирует объем ваших пользователей.