Создавайте солёные bcrypt-хеши для паролей и проверяйте открытый текст по существующему хешу — всё в вашем браузере.
Создавайте солёные bcrypt-хеши для паролей и проверяйте открытый текст по существующему хешу — всё в вашем браузере. Создавайте солёные bcrypt-хеши для паролей и проверяйте открытый текст по существующему хешу — всё в вашем браузере.
Сгенерированный bcrypt-хеш
Предыстория
Что такое bcrypt и почему это важно
bcrypt — это адаптивная функция хеширования паролей, разработанная Нильсом Провосом и
Дэвидом Мазьером в 1999 году. В отличие от быстрых хешей вроде MD5 или SHA-256, bcrypt
намеренно тратит время процессора: каждый хеш прогоняет шифр Blowfish через настраиваемое
число раундов, и работа удваивается с каждым увеличением фактора стоимости. Это замедление
и делает офлайн-атаки по словарю и перебором дорогостоящими. Корректная реализация bcrypt
также встраивает случайную 128-битную соль в выходную строку, поэтому два хеша одного и того
же пароля всегда разные, и радужные таблицы против него бесполезны.
Как читать bcrypt-хеш
bcrypt-хеш выглядит как $2b$12$e0.6kJ8a5X8u5Yp3qR5E0e9dF4z3W2c1v0b9n8m7l6k5j4h3g2f1. Части
после ведущих знаков доллара несут версию алгоритма, стоимость и соль:
$2b$ -- ревизия алгоритма. $2a$ и $2y$ — более старые варианты с тонкими
различиями в обработке 8-битного знакового бага; $2b$ — текущая рекомендация и то, что
выдаёт bcryptjs.
12 -- фактор стоимости. 2^12 = 4096 раундов расписания ключа. Каждый +1 удваивает
время; 10–12 — разумное значение по умолчанию для интерактивного входа, а 12–14 подходит
для хранимых учётных данных.
Оставшиеся 53 символа содержат 22-символьную (128-битную) base64-соль плюс
31-символьную (184-битную) контрольную сумму. Вся строка — это самодостаточная запись:
проверяющий считывает версию, стоимость и соль обратно из хеша и заново запускает
вывод, чтобы сравнить.
Как пользоваться этим инструментом
Введите пароль в поле ввода, выберите фактор стоимости и нажмите Hash. Сгенерированный хеш
появляется в поле вывода и также помещается в поле проверки. Чтобы проверить существующий
хеш, вставьте его в поле проверки и введите проверяемый пароль во ввод: страница сравнивает
немедленно и показывает зелёную галочку или красный крестик. Поскольку сравнение выполняется
через bcrypt.compareSync, оно никогда не раскрывает, насколько близкой была неверная
догадка — каждая попытка хешируется полностью до принятия решения.
Замечания и ограничения безопасности
bcrypt обрезает ввод до 72 байт: более длинные пароли молча отсекаются, поэтому два пароля
с общими первыми 72 байтами сравниваются как равные. Если нужны более длинные вводы,
предварительно хешируйте SHA-256 (в hex) и хешируйте этот дайджест. bcrypt — намеренно
маломемориальный алгоритм — он хуже сопротивляется массивам GPU, чем memory-hard схемы
вроде Argon2 или scrypt, но его таблица 4 КБ и состояние 64 байта всё равно делают дёшевый
ASIC-взлом непривлекательным. Для совершенно новых систем Argon2id часто лучший выбор;
bcrypt остаётся отличным, широко поддерживаемым вариантом для обратной совместимости и для
случаев, когда среда выполнения не может предоставить Argon2. Эта страница работает
полностью в вашем браузере: пароль и хеш никогда не покидают ваше устройство, и вы можете
изучить код (MIT/BSD bcryptjs), включённый в public/assets.
Часто задаваемые вопросы
Почему один и тот же пароль каждый раз даёт разный хеш?
Для каждого хеша генерируется случайная 128-битная соль и встраивается в вывод. Проверяющий повторно считывает соль из хеша, поэтому корректность не нарушается, но одинаковые вводы никогда не дают одинаковых выводов.
Какой фактор стоимости использовать?
Для интерактивного входа хорошее значение по умолчанию — 10–12. Для хранимых учётных данных можно взять 12–14. Бóльшая стоимость безопаснее, но медленнее; выберите максимальное значение, которое ваш сервер может позволить на один вход.
Всё ещё ли bcrypt рекомендуется в 2026?
Да. bcrypt остаётся широко применяемым и считается безопасным при использовании со стоимостью 10+. Для совершенно новых систем часто предпочитают memory-hard Argon2id или scrypt, но bcrypt — хороший, проверенный боями выбор, особенно там, где они недоступны.
Почему bcrypt медленнее, чем SHA-256?
В этом и есть суть. SHA-256 создан быть быстрым, что позволяет атакующим делать миллиарды догадок в секунду. Дорогое расписание ключа и соль bcrypt заставляют атакующего тратить реальное время на каждую догадку, делая офлайн-атаки непрактичными.
Что означает ограничение в 72 байта для моих паролей?
bcrypt игнорирует всё после 72-го байта. Два пароля длиннее 72 байт с одинаковым префиксом проверятся как идентичные. Чтобы поддерживать более длинные секреты, сначала хешируйте их SHA-256 (в hex) и хешируйте дайджест.
Отправляется ли мой пароль на сервер?
Нет. Всё работает локально в вашем браузере с включённой библиотекой bcryptjs. Вы можете отключиться от сети после загрузки страницы, и она всё равно будет работать.