我希望将 BCrypt 实现到 Web 应用程序中,但是我迷失了如何合并/更改工作/迭代/轮次的级别:
自 PHP 5.3.0 起,PHP 包含自己的实现。
我知道 using$pw = crypt($password);
会自动为我创建一个随机盐,我可以将其存储$pw
在数据库中。
我了解我可以使用以下方式检查密码有效性
if ( crypt($user_input, $pw) == $pw) ) {
// password is valid
} else {
// password is not valid
}
我知道 Bcrypt 之所以如此出色,是因为 bcrypt 是基于 Blowfish crypt 的自适应函数。随着时间的推移,可以增加轮数以使其变慢,因此尽管计算技术更快,但它仍然可以抵抗蛮力攻击。
所以我的问题是,如何减慢或加快密码有效性的检查?或者以另一种方式,如何设置创建哈希密码所需的默认迭代次数?