PASSWORD_DEFAULT与PASSWORD_BCRYPT

2022-08-30 18:23:43

PASSWORD_DEFAULT和PASSWORD_BCRYPT有什么区别?他们都使用河豚加密算法吗?算法中的成本是多少?如何在PHP中设置password_hash产生255哈希长度而不是60?


答案 1

目前是唯一受支持的算法(使用CRYPT_BLWFISH),因此 和 之间目前没有区别。的目的是允许将来包含其他算法,从而始终用于应用最强大的受支持的哈希算法。PASSWORD_BCRYPTPASSWORD_DEFAULTPASSWORD_BCRYPTPASSWORD_DEFAULTPASSWORD_DEFAULT

成本与执行的算法的迭代次数有关,并影响计算速度以及生成的哈希值。更高的成本需要更长的时间来执行,从而减缓了暴力攻击的速度


答案 2

根据文档意味着面向未来PASSWORD_DEFAULT

从文档中:

PASSWORD_DEFAULT- 使用 bcrypt 算法(默认为 PHP 5.5.0)。请注意,此常量旨在随着新的和更强大的算法添加到 PHP 中而随时间而变化。因此,使用此标识符的结果长度可能会随时间而变化。因此,建议将结果存储在可以扩展到 60 个字符以上的数据库列中(255 个字符将是一个不错的选择)。


推荐