Генератор bcrypt
bcrypt все еще остается одним из самых безопасных вариантов для хранения паролей. Он намеренно медленный, сам создает salt и масштабируется под рост мощности железа через настраиваемый cost parameter. Этот generator создает standards-compliant bcrypt hash из plaintext password, чтобы вы могли seed test user, перенести account между системами или сравнить значения с существующим hash, сохраненным в колонке users.password.
Как hash пароль с bcrypt
-
1
Введите plaintext password
До 72 bytes: bcrypt silently truncates все, что дальше.
-
2
Выберите cost factor
12: default в этом генераторе; 10: более быстрый выбор для легаси; 13: самый сильный уровень этого инструмента. Каждый +1 примерно удваивает hash time.
-
3
Генерируется random salt
16 bytes salt берутся из cryptographic RNG и встраиваются в итоговую hash string.
-
4
Скопируйте hash
Output: self-describing string вроде `$2b$12$...`, включающая version, cost, salt и digest.
Анатомия bcrypt hash
$2b$12$mE2n5YqWjKqT9tXg.OQPoeeHZJ9hdSvOt5wFdRRQwl6yE1vWWY3z6
| | | |
| | salt (22 Base64 chars) digest (31 Base64 chars)
| cost (2 digits, 4-31)
version (2a, 2b, 2y, all bcrypt)
Вся строка занимает 60 characters. Колонки типа VARCHAR(60) или CHAR(60), стандартная schema.
Рекомендации по cost factor
| Cost | Примерное время на один hash (CPU 2024) | Применение |
|---|---|---|
| 10 | ~80 ms | Прежний default, все еще приемлемо |
| 12 | ~300 ms | Текущая рекомендуемая база |
| 13 | ~600 ms | Приложения с повышенной безопасностью |
| 14 | ~1.2 s | Вне диапазона этого инструмента (максимум 13) |
Каждый increment удваивает work factor. Если login latency ниже 500 ms критична, оставайтесь на 10-12.
Version byte: 2a vs 2b vs 2y
$2a$, оригинальная specification 1999 года. Большинство libraries выпускают2ahashes.$2b$, ревизия 2014 года, исправившая truncation bug в crypt_blowfish. Предпочтительно для новых hashes.$2y$, PHP-specific tag, функционально эквивалентный$2b$.
Все три variants verify друг против друга; отличается только tag в hash string.
От чего защищает bcrypt
- Rainbow tables, уникальный per-hash salt ломает precomputed lookups.
- GPU/ASIC cracking, Blowfish key schedule memory-bound и недружелюбен к GPU. Не так GPU-hostile, как Argon2, но все равно замедляет brute force.
- Database leaks, plaintext невозможно восстановить из hash без brute force.
От чего bcrypt НЕ защищает: слабые пароли (используйте minimum length и проверку по breach lists), credential stuffing (используйте second factor), phishing.
Лимит 72-byte
bcrypt использует только первые 72 bytes пароля. Более длинные inputs silently truncated, по этой же причине многие libraries теперь рекомендуют pre-hashing password через SHA-256 перед передачей в bcrypt. У современных альтернатив (Argon2, scrypt) такого лимита нет.
Часто задаваемые вопросы
Да, для хранения паролей при cost ≥ 12. OWASP все еще относит его к acceptable algorithms. Argon2id, предпочтительный выбор для новых систем, но миграция legacy bcrypt hashes обычно не является срочной задачей.
Потому что salt генерируется randomly для каждого hash. Verification берет salt из сохраненного hash, снова hashes submitted password с ним и сравнивает.
Большинство libraries этого не предоставляет, и не зря, predictable salts убивают смысл. Используйте salt, сгенерированный library; это secure path.
Каждый +1 примерно удваивает время hash, поэтому cost 13 занимает примерно в 8 раз больше времени, чем cost 10. Оставайтесь в диапазоне 10-12, если приложение действительно не требует дополнительной прочности.
Сопутствующие инструменты
Генератор ключей API случайного типа
Создавайте на сервере ключи API длиной 8–128 символов в формате hex, base64url или алфавитно-цифровом формате либо UUIDv4.
Генератор ключей PGP
Создайте пару ключей OpenPGP в текстовом формате ASCII и сертификат отзыва с Curve25519, RSA 2048 или RSA 4096.
Шифр из числа в букву
Преобразуйте числа в буквы и обратно по шифру A=1, B=2 (A1Z26) для головоломок, загадок и подсказок в квест-комнатах.
Генератор SSL-сертификатов
Создайте самоподписанный сертификат SSL/TLS и закрытый ключ RSA полностью в браузере. Свои Common Name, SAN и срок действия, экспорт в PEM.
Генератор MD5
Создайте хеш MD5 для любого текста или файла. Результат, 128-битное значение в шестнадцатеричном формате, вычисляемое полностью в вашем браузере.
Шифрование / расшифровка AES
Шифруйте и расшифровывайте текст низкого риска с AES-шифрами OpenSSL. Парольная фраза хэшируется SHA-256, а Base64-вывод содержит IV плюс шифротекст.
Инструмент доступен на других языках
- bcryptジェネレーター [JA]
- bcrypt-generator [NL]
- Generador bcrypt [ES]
- Trình tạo bcrypt [VI]
- Gerador de bcrypt [PT]
- Generator bcrypt [ID]
- bcrypt-Generator [DE]
- bcrypt-generator [SV]
- مولد bcrypt [AR]
- Generator bcrypt [PL]
- bcrypt 생성기 [KO]
- ตัวสร้าง bcrypt [TH]
- Générateur bcrypt [FR]
- bcrypt Generator [EN]
- Generatore bcrypt [IT]
- bcrypt Oluşturucu [TR]
- bcrypt 生成器 [ZH]