PASSWORD_DEFAULT 和 PASSWORD_BCRYPT 有什么区别?他们都使用 Blowfish 加密算法吗?算法中的成本是多少?如何在 PHP 中设置 password_hash 产生 255 的哈希长度而不是 60?
问问题
24013 次
3 回答
33
目前PASSWORD_BCRYPT
是唯一支持的算法(使用 CRYPT_BLWFISH),因此目前PASSWORD_DEFAULT
和之间没有区别PASSWORD_BCRYPT
。的目的PASSWORD_DEFAULT
是允许将来包含其他算法,因此PASSWORD_DEFAULT
将始终用于应用最强大的支持散列算法。
成本与算法执行的迭代次数有关,影响计算速度以及生成的哈希值。更高的成本需要更长的执行时间,减缓蛮力攻击
于 2014-03-13T23:29:42.520 回答
4
根据文档 PASSWORD_DEFAULT
旨在为未来提供证明
从文档:
PASSWORD_DEFAULT
- 使用 bcrypt 算法(默认为 PHP 5.5.0)。请注意,此常量旨在随着 PHP 中添加新的和更强大的算法而随时间而变化。因此,使用此标识符的结果长度可能会随时间而变化。因此,建议将结果存储在可以扩展超过 60 个字符的数据库列中(255 个字符将是一个不错的选择)。
于 2014-03-13T23:29:13.640 回答
2
PASSWORD_DEFAULT
和暂时没有区别PASSWORD_BCRYPT
。参考这里
成本将取决于将应用散列的轮数。上面的链接中也对此进行了说明。如果您想提高哈希的安全性,最好增加轮数而不是长度。
于 2014-03-13T23:35:36.657 回答