Skip to content

Генератор и проверка bcrypt-хешей

Создавайте и проверяйте bcrypt-хеши паролей онлайн — настраиваемый фактор стоимости, префиксы $2b$/$2a$/$2y$. 100% в браузере; пароль никуда не отправляется.

Без отслеживания Работает в браузере Бесплатно
100% в вашем браузере — пароль никогда не покидает ваше устройство.
Bcrypt-хеш
Анатомия хеша
Версия
Стоимость
Соль
Дайджест

Следует эталонному поведению bcrypt, вывод сверен с Node bcrypt, Python bcrypt и Apache htpasswd — Команда безопасности Go Tools · Jun 12, 2026

Что такое Bcrypt?

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

bcrypt-хеш — это одна самоописывающаяся строка из 60 символов, например $2b$12$dUSFKqT1FCMYZ6hcQfsxuONizEqcX8IGK8snfVSowP5Uu.TDJoPUq. Она содержит четыре части: версию ($2b$), стоимость (12, логарифмический фактор работы), 22-символьную Base64-соль и 31-символьный Base64-дайджест. Поскольку соль случайна и встроена в хеш, один и тот же пароль каждый раз даёт другой хеш — что побеждает радужные таблицы и скрывает тот факт, что два пользователя выбрали одинаковый пароль. Проверка читает соль и стоимость обратно из сохранённого хеша и заново хеширует кандидат, поэтому bcrypt никогда не нужно (и не может) обращать хеш, чтобы восстановить пароль.

Этот инструмент работает целиком в вашем браузере, используя встроенную реализацию bcrypt — ни пароль, ни хеш никогда не загружаются. Используйте его, чтобы сгенерировать хеш с выбранной стоимостью и префиксом, проверить пароль против существующего хеша и прочитать анатомию хеша. Он естественно сочетается с другими инструментами безопасности: защитите каталог с помощью HTTP Basic Auth через наш Генератор htpasswd (который может выдавать bcrypt-записи напрямую), создайте надёжный пароль для хеширования с помощью нашего Генератора случайных паролей и обратитесь к нашему Генератору SHA-256, когда нужна быстрая контрольная сумма общего назначения, а не медленный хеш пароля. Если вы решаете, каким алгоритмом хранить пароли, сравните варианты в статье bcrypt против Argon2 против scrypt.

// Node.js — bcryptjs / bcrypt (emits $2b$)
const bcrypt = require('bcrypt');
const hash = await bcrypt.hash('correct horse battery staple', 12);
// -> $2b$12$dUSFKqT1FCMYZ6hcQfsxuONizEqcX8IGK8snfVSowP5Uu.TDJoPUq
const ok = await bcrypt.compare('correct horse battery staple', hash); // true

# Python — bcrypt
import bcrypt
hashed = bcrypt.hashpw(b'correct horse battery staple', bcrypt.gensalt(12))
bcrypt.checkpw(b'correct horse battery staple', hashed)  # True

# PHP — password_hash (emits $2y$)
$hash = password_hash('correct horse battery staple', PASSWORD_BCRYPT, ['cost' => 12]);
password_verify('correct horse battery staple', $hash); // true

# Apache htpasswd CLI — bcrypt entry to stdout (-B bcrypt, -b inline, -n stdout)
htpasswd -Bbn admin 'correct horse battery staple'
# -> admin:$2y$12$dUSFKqT1FCMYZ6hcQfsxuONizEqcX8IGK8snfVSowP5Uu.TDJoPUq

Ключевые возможности

Генерация bcrypt-хешей

Создавайте стандартный bcrypt-хеш из 60 символов из любого пароля со свежей случайной солью. Каждый клик даёт другой валидный хеш — ровно как настоящее хранилище паролей.

Настраиваемый фактор стоимости

Настраивайте фактор работы от 4 до 15 (12 — современное значение по умолчанию). Почувствуйте, как каждый шаг примерно удваивает время вычисления, чтобы выбрать стоимость, которая надёжна, но достаточно быстра для входа.

Выбор префикса версии

Выдавайте $2b$ (текущий стандарт bcryptjs), $2y$ (PHP / Apache htpasswd) или $2a$ (исходный). Все они взаимозаменяемы для проверки в разных библиотеках.

Проверка пароля против хеша

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

Разбор анатомии хеша

Смотрите, как любой bcrypt-хеш разбивается на версию, стоимость, соль и дайджест, чтобы структура строки $2b$12$... была очевидна с первого взгляда.

100% на стороне клиента

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

Примеры генератора Bcrypt

bcrypt-хеш (стоимость 12, $2b$)

пароль: correct horse battery staple
стоимость: 12
префикс: $2b$
$2b$12$dUSFKqT1FCMYZ6hcQfsxuONizEqcX8IGK8snfVSowP5Uu.TDJoPUq

bcrypt-хеш со стоимостью 12 и префиксом $2b$. Соль случайна, поэтому один и тот же пароль каждый раз даёт другой хеш — но все они проходят проверку против исходного пароля.

Проверка пароля против хеша

пароль: correct horse battery staple
хеш: $2b$12$dUSFKqT1FCMYZ6hcQfsxuONizEqcX8IGK8snfVSowP5Uu.TDJoPUq
✓ Совпадение — пароль соответствует этому хешу

Проверка не расшифровывает хеш. bcrypt заново хеширует пароль-кандидат, используя соль и стоимость, встроенные в сохранённый хеш, а затем сравнивает результат. Совпадение означает, что пароль верен.

Разбор анатомии хеша

$2b$12$dUSFKqT1FCMYZ6hcQfsxuONizEqcX8IGK8snfVSowP5Uu.TDJoPUq
версия: $2b$ · стоимость: 12 · соль: dUSFKqT1FCMYZ6hcQfsxuO · дайджест: NizEqcX8IGK8snfVSowP5Uu.TDJoPUq

Каждый bcrypt-хеш самоописывающийся: тег версии, двузначная стоимость, 22-символьная Base64-соль и 31-символьный Base64-дайджест — всё в одной строке из 60 символов. Инструмент раскладывает их по частям, чтобы вы видели всё с первого взгляда.

Как пользоваться генератором Bcrypt

  1. 1

    Введите пароль и выберите стоимость

    На вкладке «Сгенерировать» введите пароль или нажмите «Случайный пароль». Выберите фактор стоимости (4–15; 12 — современное значение по умолчанию) и префикс версии — $2b$, $2a$ или $2y$ — под ваш стек.

  2. 2

    Сгенерируйте хеш

    bcrypt-хеш вычисляется локально со свежей случайной солью и появляется в виде одной строки из 60 символов $2b$12$.... Нажмите «Копировать», чтобы забрать его, или перегенерируйте для нового хеша с солью.

  3. 3

    Прочитайте анатомию или проверьте

    Панель анатомии разбивает хеш на версию, стоимость, соль и дайджест. Перейдите на вкладку «Проверка», чтобы вставить сохранённый хеш и пароль и мгновенно подтвердить, совпадают ли они.

Common Errors

Попытка расшифровать хеш

Bcrypt односторонняя; расшифровки нет. Чтобы проверить пароль, сверьте его с хешем, а не пытайтесь обратить дайджест.

✗ Неверно
bcrypt.decrypt(hash)  // no such operation
✓ Верно
bcrypt.compare(password, hash)  // returns true / false

Слишком низкая стоимость

Низкая стоимость вроде 4 или 6 хеширует почти мгновенно, что также позволяет атакующим быстро перебирать утёкшие хеши. Используйте 12 как базовую планку.

✗ Неверно
cost: 4  // far too fast, weak against brute force
✓ Верно
cost: 12  // modern default, resists brute force

Ожидание одинакового хеша дважды

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

✗ Неверно
hash(pw) === storedHash  // fails — different salts
✓ Верно
bcrypt.compare(pw, storedHash)  // correct check

Частые сценарии использования

Заполнение хеша пароля в базе данных
Сгенерируйте bcrypt-хеш для админского или тестового аккаунта и вставьте его прямо в таблицу пользователей, чтобы войти, не настраивая сначала полный поток регистрации.
Отладка неудачного входа
Проверьте заведомо верный пароль против сохранённого хеша, чтобы подтвердить, корректен ли сам хеш, отделив баг от вашего кода аутентификации.
Подбор правильного фактора стоимости
Генерируйте на нескольких уровнях стоимости на собственном оборудовании, чтобы почувствовать длительность каждого, затем выберите фактор работы, который сопротивляется перебору, не замедляя реальные входы.
Создание записей htpasswd / Basic Auth
Создайте $2y$ bcrypt-хеш для учётных данных Apache, Docker Registry или Caddy, затем поместите его в строку user:hash для HTTP Basic Auth.
Построение тестовых фикстур
Создавайте детерминированные-по-паролю bcrypt-хеши для заполнения интеграционных тестов потока входа или сброса пароля без поднятия настоящего сервера аутентификации.
Аудит найденного хеша
Прочитайте анатомию bcrypt-строки в конфиге или дампе, чтобы проверить её фактор стоимости, и проверьте её против ожидаемого пароля, чтобы подтвердить совпадение.

Технические детали

На основе Blowfish, адаптивная стоимость
Bcrypt выводит свой хеш из дорогой настройки ключа шифра Blowfish, повторённой 2^стоимость раз. Повышение стоимости на единицу удваивает работу, сохраняя функцию медленной против перебора по мере улучшения оборудования.
128-битная случайная соль
Каждый хеш встраивает 16-байтную (128-битную) случайную соль, закодированную в Base64 как 22 символа после стоимости. Соль делает каждый хеш уникальным, поэтому одинаковые пароли никогда не разделяют дайджест и радужные таблицы неприменимы.
Самоописывающийся формат из 60 символов
Вывод — это $версия$стоимость$соль+дайджест — фиксированная строка из 60 символов, несущая всё необходимое для проверки. Отдельный столбец соли или хранилище параметров не требуются.
Лимит пароля в 72 байта
Bcrypt хеширует только первые 72 байта пароля; всё, что сверх того, молча игнорируется. Для очень длинных парольных фраз предварительное хеширование (например, через SHA-256) перед bcrypt — распространённое смягчение.
Проверяйте, не расшифровывайте
Bcrypt односторонняя. Проверка заново выполняет хеш на пароле-кандидате, используя соль и стоимость, разобранные из сохранённого хеша, затем сравнивает дайджесты за постоянное время. Нет операции, восстанавливающей открытый текст.
Заметки о честности и оговорки
Хеши вычисляются локально и никогда не сверяются с живой системой. Скопированные хеши и любой набранный вами пароль остаются в буфере обмена и в памяти браузера — относитесь к ним как к секретам и очищайте буфер обмена после вставки в продакшен.

Лучшие практики

Используйте стоимость 12 или выше
Стоимость 12 — современная базовая планка; поднимайте её к 14 для чувствительных систем, пока задержка входа остаётся приемлемой. Периодически пересматривайте — то, что было достаточно медленным пять лет назад, дёшево атаковать сегодня.
Никогда не храните и не логируйте открытый текст
Храните только bcrypt-хеш, никогда исходный пароль, и держите пароли вне логов и сообщений об ошибках. Вся ценность bcrypt теряется, если открытый текст утекает рядом с ним.
Доверьте соль bcrypt
Bcrypt генерирует и встраивает безопасную случайную соль за вас. Не подставляйте свою статическую соль и не используйте одну повторно — именно случайная соль для каждого хеша побеждает радужные таблицы.
Помните о лимите в 72 байта
Если вы принимаете длинные парольные фразы, помните, что bcrypt игнорирует байты после 72. Рассмотрите предварительное хеширование через SHA-256 или оцените Argon2id, когда очень длинные вводы должны быть покрыты полностью.

Частые вопросы о генераторе Bcrypt

Безопасно ли пользоваться онлайн-генератором bcrypt?
С этим — да, потому что ничего из набранного вами никогда не покидает браузер. Пароль, сгенерированный хеш и проверка целиком выполняются локально на JavaScript на вашем устройстве. Нет сетевых запросов, логирования и хранения: убедиться можно, открыв «Инструменты разработчика» (F12 → вкладка Network) во время генерации хеша и наблюдая нулевое число исходящих запросов, либо отключившись от интернета и увидев, что инструмент продолжает работать. Это противоположность сомнительному генератору, который отправляет ваш пароль POST-запросом на сервер. Тем не менее в качестве привычки, когда вы просто экспериментируете, предпочитайте одноразовый тестовый пароль настоящему боевому.
Как сгенерировать bcrypt-хеш онлайн?
Откройте вкладку «Сгенерировать», введите пароль (или нажмите «Случайный пароль», чтобы создать надёжный), выберите фактор стоимости — 12 это современное значение по умолчанию — и префикс версии: $2b$ для большинства современных стеков, $2y$ для PHP и Apache или $2a$ для исходного идентификатора. bcrypt-хеш вычисляется мгновенно в вашем браузере со свежей случайной солью и появляется в виде одной строки из 60 символов $2b$12$..., которую можно скопировать одним кликом. Ничего не загружается: пароль и хеш никогда не покидают ваше устройство. Сгенерируйте ещё раз в любой момент, чтобы получить другой валидный хеш для того же пароля, ведь каждый из них несёт другую случайную соль.
Можно ли расшифровать или обратить bcrypt-хеш?
Нет. bcrypt — это односторонняя функция хеширования паролей, а не шифрование, поэтому здесь нет ключа и нет операции расшифровки, которая превращала бы хеш обратно в исходный пароль. Единственный способ узнать пароль по хешу — перебирать кандидатов и хешировать каждый, пока не совпадёт, а именно это настраиваемый фактор стоимости bcrypt и призван сделать медленным и дорогим. Поэтому вы проверяете пароль против хеша, а не расшифровываете его: инструмент заново хеширует ваш кандидат с солью и стоимостью, сохранёнными в хеше, и сверяет, идентичен ли результат.
Какой фактор стоимости (work factor) выбрать?
Стоимость 12 — современное значение по умолчанию и разумный баланс безопасности и скорости. Стоимость — это логарифмический фактор работы: каждый шаг удваивает число внутренних раундов, поэтому стоимость 13 вычисляется и проверяется примерно вдвое дольше, чем 12, а стоимость 11 — вдвое быстрее. Высокая стоимость замедляет атакующих, перебирающих утёкшие хеши, но также добавляет задержку к каждому легитимному входу, поэтому не поднимайте её выше точки, где аутентификация начинает ощущаться вялой на вашем реальном оборудовании. Стоимость 10 приемлема для эндпоинтов с низким риском; 12–14 подходит для чего-либо чувствительного. Допустимый диапазон — от 4 до 31, а этот инструмент позволяет выбрать от 4 до 15.
В чём разница между $2a$, $2b$ и $2y$?
Это префиксы версий одного и того же алгоритма bcrypt, а различия восходят к историческим исправлениям ошибок в том, как некоторые реализации обрабатывали длину строки и символы со старшим битом. $2a$ — исходный широко используемый идентификатор; $2b$ — исправленная текущая версия, которую выдаёт библиотека bcryptjs и большинство современных реализаций; а $2y$ — идентификатор, используемый PHP и Apache htpasswd. Для проверки они взаимозаменяемы — хеш, который вы создаёте здесь с любым префиксом, корректно валидируется в разных библиотеках, потому что все они выполняют одну и ту же базовую функцию. Выбирайте тот префикс, который ожидает ваш стек, если вам нужна побайтовая совместимость.
Как проверить пароль против bcrypt-хеша?
Перейдите на вкладку «Проверка», вставьте сохранённый bcrypt-хеш (полную строку $2b$12$...) и пароль-кандидат, и инструмент мгновенно сообщит, совпадают ли они. Он работает так: извлекает соль и стоимость, встроенные в хеш, заново хеширует пароль-кандидат с этими точными параметрами и сравнивает новый дайджест с сохранённым — никакой расшифровки не происходит. Именно так система входа проверяет пароль: она никогда не восстанавливает открытый текст, а лишь подтверждает, что повторное хеширование отправленного пароля воспроизводит сохранённый хеш.
bcrypt против Argon2 против scrypt — что выбрать?
Все три — намеренно медленные функции хеширования паролей с солью, и все они куда лучше голого SHA-256 для хранения паролей. bcrypt наиболее широко поддерживается и проверена временем, имеет простую настраиваемую стоимость; её основные ограничения — лимит пароля в 72 байта и то, что она нагружает только процессор. scrypt добавляет требовательность к памяти, делая масштабные атаки на GPU/ASIC дороже. Argon2 (а именно Argon2id) — текущая рекомендация Password Hashing Competition и OWASP, настраивающая время, память и параллелизм независимо. Если вы выбираете с нуля сегодня, Argon2id — самый сильный вариант по умолчанию; bcrypt остаётся отличным безопасным выбором — особенно там, где важна поддержка библиотек или совместимость. Подробно разбираем компромиссы в статье bcrypt против Argon2 против scrypt.
Почему bcrypt-хеш каждый раз разный?
Потому что bcrypt генерирует свежую случайную соль для каждого хеша, и соль подмешивается перед хешированием. Один и тот же пароль поэтому при каждом нажатии «Сгенерировать» даёт совершенно другую строку из 60 символов — и в этом весь смысл: это не даёт атакующим заранее вычислять радужные таблицы или замечать, что два пользователя используют одинаковый пароль. Соль не секретна; она хранится прямо внутри хеша (22 символа после стоимости), так что проверка может прочитать её обратно. Если вы перегенерируете хеш, вы просто получите другой валидный хеш для того же пароля, и каждый из них успешно пройдёт проверку.

Похожие инструменты

Все инструменты →

Декодер JWT

Безопасность

Декодируйте JWT-токены онлайн бесплатно. Просмотр header, payload, signature, срока действия, алгоритма и claims. 100% в браузере — токен не покидает устройство. Без регистрации.

JWT-энкодер и генератор

Безопасность

Бесплатный онлайн-генератор и энкодер JWT. Соберите header и payload, подпишите с HS256, RS256 или ES256 мгновенно. 100% в браузере — ваш секрет и ключ не покидают устройство.

Генератор MD5-хешей и контрольных сумм файлов

Безопасность

Создавайте MD5, SHA-256, SHA-1 и SHA-512 хеши онлайн бесплатно. Хеширование текста или файлов в браузере, проверка контрольных сумм и копирование результатов. Без регистрации.

Генератор случайных паролей — настраиваемый и безопасный

Безопасность

Генерируйте сильные случайные пароли мгновенно — бесплатно, 100% в браузере. Настройка длины и символов, batch до 50 с анализом энтропии.

Генератор SHA-1 хешей (160-бит, устаревший)

Безопасность

Получайте SHA-1 хеши в браузере — 40-символьный hex-вывод, без загрузки на сервер. Устаревший инструмент для отпечатков Git, проверки старых сертификатов и аудита миграции.

Генератор SHA-256 хешей и контрольных сумм

Безопасность

Получайте SHA-256 хеши онлайн бесплатно. Хеширование текста или файлов в браузере, проверка контрольных сумм, 64-символьный hex-вывод. Без регистрации; данные не покидают страницу.