§

Генератор Bcrypt

§

Создать хеш Bcrypt

10 (1,024 rounds)

Bcrypt стал стандартом хеширования паролей в веб-разработке США с момента его появления в 1999 году благодаря Провосу и Мазьеру. NIST SP 800-63B рекомендует использование устойчивых к перебору хешей для хранения паролей, а OWASP указывает bcrypt как предпочтительный вариант наряду с Argon2id. Rails поставляется с bcrypt через has_secure_password, Django поддерживает его как подключаемый бэкенд, а разработчики Node.js используют библиотеку bcryptjs. Фактор стоимости контролирует, сколько времени занимает одиночное хеширование — удвоение стоимости удваивает объём работы. Большинство приложений используют стоимость 10 (1024 раунда) в качестве базовой, в то время как финансовые и административные системы часто устанавливают 12 (4096 раундов). Этот инструмент полностью работает в браузере с использованием JavaScript, поэтому ваши пароли никогда не покидают ваше устройство.

Что такое bcrypt?

Bcrypt — это функция хеширования паролей, разработанная Нильсом Провосом и Дэвидом Мазьером на основе шифра Blowfish. В отличие от быстрых дайджестов, таких как MD5 или SHA-256, bcrypt намеренно медленный и вычислительно затратный — это делает атаки перебором на украденные хеши паролей непрактичными. Bcrypt автоматически генерирует случайную соль для каждого пароля, поэтому одинаковые пароли дают разные хеши.

Как работает bcrypt?

Алгоритм bcrypt полностью выполняется в вашем браузере. Вот что происходит шаг за шагом:

  1. Ваш пароль кодируется в байты UTF-8 и передаётся в расписание ключей bcrypt, которое инициализирует 4184-байтовый P-массив и S-блоки шифра Blowfish, используя пароль и соль.
  2. Генерируется случайная 128-битная соль. Соль смешивается с расписанием ключей, так что каждая уникальная соль даёт совершенно другой хеш даже для одного и того же пароля.
  3. Расписание ключей выполняется в течение 2^cost раундов (например, 2^10 = 1024 итерации для стоимости 10). Каждая итерация заново шифрует соль и записи P-массива, делая вычисления пропорционально медленнее по мере увеличения стоимости.
  4. Конечный результат — строка из 60 символов в формате $2b$<cost>$<salt><hash>, где cost дополнен нулями (например, 10), salt — 22 символа Base64, а hash — 31 символ Base64.
  5. Для проверки тот же алгоритм запускается снова с кандидатом пароля и солью, извлечённой из сохранённого хеша. Если полученный хеш совпадает с сохранённым, пароль верен.

Какой фактор стоимости мне использовать?

Фактор стоимости — это логарифм количества итераций: стоимость 10 означает 2^10 = 1024 раунда, стоимость 12 — 4096 раундов. Выбирайте исходя из требований безопасности и вашего оборудования:

  • Стоимость 4-6 (16-64 раунда) — только для разработки и тестирования. Слишком быстро для продакшена; обеспечивает минимальную защиту.
  • Стоимость 8 (256 раундов) — абсолютный минимум для некритичных приложений. Около 6 мс на современном оборудовании.
  • Стоимость 10 (1024 раунда) — текущий рекомендуемый базовый уровень. Занимает около 25 мс. Хорошо подходит для большинства веб-приложений.
  • Стоимость 12 (4096 раундов) — рекомендуется для административных порталов, финансовых систем и приложений с высокими требованиями к безопасности. Занимает около 100 мс.
  • Стоимость 14 (16384 раунда) — высокая безопасность. Занимает около 400 мс. Используйте для мастер-паролей, ключей шифрования или когда задержка входа приемлема.

Почему стоит использовать этот генератор bcrypt?

  • Конфиденциальность — каждый пароль хешируется локально в вашем браузере. Никакие данные не покидают ваше устройство.
  • Двойной режим — создавайте новые хеши или проверяйте существующие рядом, без переключения страниц.
  • Регулируемый фактор стоимости — настройте фактор работы от 4 (быстро) до 15 (очень медленно) в соответствии с потребностями безопасности вашего приложения.
  • Соответствие стандартам — создаёт хеши в стандартном формате $2b$, совместимом со всеми основными языками и фреймворками.

Каковы распространённые применения bcrypt?

Bcrypt широко используется в индустрии для хранения и проверки паролей:

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

Как выглядит хеш bcrypt?

Хеширование пароля hunter2 с фактором стоимости 10 даёт строку вида $2b$10$N9qo8uLOickgx2ZMRZoMyeIjZAgcfl7p92ldGxad68LJZdL17lhWy. Формат расшифровывается так: $2b$ (версия алгоритма), 10 (фактор стоимости), $, затем 22 символа соли и 31 символ хеша, все в кодировке Base64. Каждый запуск с одним и тем же паролем даёт разный хеш из-за случайной соли.

Этот генератор bcrypt полностью работает в вашем браузере, используя реализацию на чистом JavaScript. Хешируйте пароли перед сохранением, проверяйте существующие хеши и настраивайте фактор стоимости в соответствии с вашими требованиями безопасности — и всё это без отправки ни одного байта на сервер.