Генератор 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, если приложение действительно не требует дополнительной прочности.
Сопутствующие инструменты
Кодировщик и декодировщик Base58
Кодируйте текст UTF-8 или шестнадцатеричные байты и безопасно декодируйте Base58 с алфавитом Bitcoin, Ripple или Flickr.
Кодировщик файлов Base64
Кодируйте любой файл (PDF, ZIP, изображение, исполняемый файл) в текст Base64 для встраивания в JSON, письма, YAML или data URI. Работает локально в браузере, без загрузки на сервер.
Кодировщик шифра A1Z26
Кодируйте текст шифром A1Z26 (A=1, B=2, ... Z=26) или декодируйте числовую последовательность обратно в буквы, выбрав разделитель.
Кодировщик и декодировщик Base85
Кодируйте и декодируйте Base85 в варианте Adobe Ascii85, который используется в файлах PostScript и PDF. Компактнее Base64 для двоичных данных.
Шифрование / расшифровка AES
Шифруйте и расшифровывайте текст низкого риска с AES-шифрами OpenSSL. Парольная фраза хэшируется SHA-256, а Base64-вывод содержит IV плюс шифротекст.
Генератор SSL-сертификатов
Создайте самоподписанный сертификат SSL/TLS и закрытый ключ RSA полностью в браузере. Свои Common Name, SAN и срок действия, экспорт в PEM.
Инструмент доступен на других языках
- Trình tạo bcrypt [VI]
- Générateur bcrypt [FR]
- bcrypt-Generator [DE]
- Generator bcrypt [ID]
- Generator bcrypt [PL]
- bcrypt-generator [NL]
- bcryptジェネレーター [JA]
- Generador bcrypt [ES]
- bcrypt 生成器 [ZH]
- bcrypt 생성기 [KO]
- bcrypt Oluşturucu [TR]
- bcrypt-generator [SV]
- bcrypt Generator [EN]
- ตัวสร้าง bcrypt [TH]
- Gerador de bcrypt [PT]
- مولد bcrypt [AR]
- Generatore bcrypt [IT]