Bcrypt — это функция хеширования паролей, разработанная для того, чтобы быть медленной и вычислительно дорогой, что делает её устойчивой к атакам перебором. Это отраслевой стандарт для безопасного хранения паролей.
Как работает Bcrypt
Bcrypt использует шифр Blowfish с солью и фактором стоимости. Фактор стоимости (раунды) определяет, сколько итераций выполняет алгоритм — каждое увеличение удваивает время вычисления, делая атаки экспоненциально сложнее.
Почему использовать Bcrypt?
В отличие от MD5/SHA, которые быстрые (плохо для паролей), bcrypt намеренно медленный. Это делает атаки перебором непрактичными. Стоимость 10 означает 2^10 (1024) итераций, что занимает ~100мс для хеширования — незначительно для входа, но разрушительно для атакующих, пробующих миллиарды паролей.
Лучшие практики безопасности
Используйте стоимость 10-12 для большинства приложений. Стоимость 10 — текущий рекомендуемый минимум. Никогда не используйте MD5 или SHA-1 для паролей — они взломаны. Никогда не храните пароли в открытом виде. Всегда используйте bcrypt, Argon2 или scrypt для хеширования паролей.