Хеши/крипто
UUID Generator
Генерация UUID версий 1, 3, 4, 5, 6 и 7 — случайных, временных и производных от имени (name-based).
UUID (Universally Unique Identifier) — 128-битный идентификатор, который на практике уникален без центрального реестра: два независимых сервера могут сгенерировать UUID одновременно и почти никогда не получат одинаковое значение. Версии отличаются способом генерации.
Как выбрать версию
- v4 — полностью случайный, самый распространённый выбор для ID записей в базе данных, ключей сессий и т.п.
- v1 и v6 — на основе времени создания; v6 содержит те же данные, что и v1, но с полями в отсортированном порядке — удобно как первичный ключ.
- v3 и v5 — детерминированные, вычисляются из namespace и имени (v3 на MD5, v5 на SHA-1) — одинаковые входные данные всегда дают одинаковый UUID.
- v7 — новый стандарт: временная метка Unix в миллисекундах плюс случайная часть, сортируется по времени, как v1/v6, но без MAC-адреса.
Типичные сценарии
- Первичные ключи в базах данных, когда не подходит автоинкремент (распределённые системы, offline-first приложения).
- Идентификаторы сессий, запросов для трассировки, временных файлов.
- Детерминированные ID (v5) для объектов, которые нужно одинаково идентифицировать в разных системах по одному и тому же имени.
Что стоит помнить
UUID v1 и v6 включают MAC-адрес устройства-генератора — не используйте их, если это нежелательное раскрытие информации.
Формат записи — 32 шестнадцатеричных символа, сгруппированных дефисами как 8-4-4-4-12 (например, 550e8400-e29b-41d4-a716-446655440000).
Часто задаваемые вопросы
В чём разница между UUID v4 и другими версиями?
UUID v4 генерируется из случайных или псевдослучайных чисел, что делает его самым простым вариантом без зависимости от времени или аппаратных идентификаторов. Другие версии, например v1, кодируют временную метку и MAC-адрес, а v5 детерминированно выводит UUID из пространства имён и имени.
Насколько вероятно совпадение двух сгенерированных UUID?
Крайне маловероятно. UUID v4 имеет 122 случайных бита, поэтому потребовалось бы генерировать миллиарды UUID в секунду на протяжении веков, прежде чем коллизия стала бы статистически вероятной.
Отправляются ли сгенерированные здесь UUID куда-либо?
Нет. Генерация происходит полностью в вашем браузере с использованием криптографически стойкого источника случайности — ничего не отправляется на сервер.
Что такое UUID v7 и чем он лучше v4 для баз данных?
UUID v7 встраивает метку времени в первые биты, поэтому значения естественно сортируются по времени создания — в отличие от полностью случайного v4, который плохо влияет на производительность индексов базы данных из-за хаотичного порядка вставки новых записей.
Можно ли использовать UUID как секретный токен?
Для UUID v4 — да, поскольку он генерируется криптографически стойким генератором случайности. Но UUID v1 частично раскрывает время создания и MAC-адрес устройства, поэтому не подходит там, где нужна непредсказуемость.