ГСЧ лаборатория случайностей

Утилиты

UUID и случайные токены

UUID v4, hex, base64 и PIN — по одному или сотнями.

мгновенно считается локально
Результат Случайность: локальный CSPRNG
Нажмите «Сгенерировать» — значения появятся здесь.
Готово к работе
Сводка UUID v4
UUID формат
36 символов
122 бит энтропии

122 бита: 128 случайных бит минус 6 бит на версию и вариант.

Сгенерированные значения видны на экране и могут попасть в историю браузера или скриншот. Для боевых секретов — серверный менеджер секретов, а не вкладка с генератором.

Что такое UUID v4

UUID (universally unique identifier) — 128-битный идентификатор, который записывают тридцатью шестью символами: восемь групп через дефис, например 3f2a9c1e-7b4d-4f6a-9e21-8c5d0b7a4e13. Четвёртая версия стандарта означает, что почти все биты в нём случайны.

Из 128 бит шесть зарезервированы: четыре бита уходят на номер версии (в третьей группе всегда стоит 4), два — на вариант RFC 4122 (четвёртая группа начинается с 8, 9, a или b). Остаются 122 случайных бита — это примерно 5,3 × 10³⁶ вариантов.

Главное свойство UUID — его можно создать где угодно без координации с сервером. Два независимых приложения почти никогда не выдадут одинаковый идентификатор, поэтому UUID удобно генерировать на клиенте ещё до записи в базу.

Где применяют UUID и токены

  • первичные ключи таблиц, когда автоинкремент мешает или выдаёт размер базы;
  • идентификаторы запросов для логов и трассировки между сервисами;
  • ключи идемпотентности для повторных запросов к API;
  • имена временных файлов, папок и сессий;
  • hex- и base64-токены для ссылок сброса пароля и приглашений;
  • PIN-коды для локальной проверки — например, в демо-стенде.

Чем UUID отличается от случайной строки

Случайная строка — это просто набор знаков без обязательств. UUID — стандарт: фиксированная длина, каноническая запись, номер версии и варианта внутри, готовая поддержка в библиотеках любого языка. Если значение должно читаться стандартными парсерами и храниться в колонке uuid, берите UUID.

Если нужен именно токен — для ссылки, ключа API или имени файла — формат свободнее. Hex удобен тем, что состоит только из цифр и латинских букв a–f и не требует экранирования. Base64 плотнее: шесть бит на символ вместо четырёх, поэтому строка той же стойкости короче на четверть.

Сколько энтропии в токене

Энтропия токена считается как длина × log₂(алфавит). Для PIN-кода алфавит — десять цифр, поэтому даже 12 знаков дают всего около 40 бит: такой код защищает от случайного подбора, но не от целенаправленного перебора.

ТипРасчётЭнтропия
UUID v4122 случайных бита122 бита
HEX, 16 байт16 × 8128 бит
HEX, 32 байта32 × 8256 бит
Base64, 32 знака32 × 6192 бита
PIN, 6 цифр6 × log₂(10)≈ 20 бит
Своя строка, 24 знака из 3224 × 5120 бит

Как обращаться с токенами

  • для сессий и API — не меньше 128 бит энтропии;
  • для одноразовых ссылок — короткий срок жизни важнее длины;
  • храните на сервере хеш токена, а не сам токен;
  • не пишите токены в логи и в аналитику;
  • PIN — только для локальной проверки, не для доступа к данным.
Частые вопросы
UUID v4 может повториться?
Теоретически да, как и любое случайное значение. Вероятность совпадения для 122 бит настолько мала, что для практических задач ею пренебрегают: чтобы шанс коллизии достиг одного процента, нужно выпустить порядка 10¹⁸ идентификаторов.
Почему в третьей группе всегда «4»?
Это номер версии: четвёрка означает «случайные данные». Четвёртая группа начинается с 8, 9, a или b — это признак варианта RFC 4122. Вместе они занимают шесть бит и не участвуют в случайности.
UUID подойдёт вместо пароля?
Нет, хотя энтропии хватает. UUID предназначен для публичной идентификации: его показывают в ссылках, логах и интерфейсах, он не считается секретом. Для паролей используйте отдельный генератор паролей.
Чем hex-токен удобнее base64?
Hex состоит только из 0–9 и a–f: такие строки безопасно вставлять в URL, имена файлов и SQL без экранирования. Base64 короче, но содержит знаки «+» и «/», которые иногда требуют замены.
Можно ли задать свой алфавит?
Да, в режиме «Своя строка». Уберите похожие символы, чтобы значение было проще продиктовать, и следите за размером алфавита: чем он меньше, тем ниже энтропия при той же длине.
↑↓ навигация Enter открыть Esc закрыть