PASSWORD_DEFAULT和PASSWORD_BCRYPT有什么区别? 它们都使用Blowfish加密算法吗? 算法中的成本是什么意思? 如何在PHP中设置password_hash以产生255个哈希长度而不是60个?
PASSWORD_DEFAULT和PASSWORD_BCRYPT有什么区别? 它们都使用Blowfish加密算法吗? 算法中的成本是什么意思? 如何在PHP中设置password_hash以产生255个哈希长度而不是60个?
目前只支持PASSWORD_BCRYPT
算法(使用CRYPT_BLOWFISH),因此PASSWORD_DEFAULT
和PASSWORD_BCRYPT
之间目前没有区别。 PASSWORD_DEFAULT
的目的是为了允许在未来包含其他算法,届时将始终使用最强大的支持哈希算法应用PASSWORD_DEFAULT
。
“Cost”与执行算法迭代次数有关,会影响计算速度和生成的哈希值。更高的成本需要更长时间来执行,从而减缓暴力攻击。
CRYPT_BLWFISH
、PASSWORD_BCRYPT
和 PASSWORD_DEFAULT
,发现它们都具有相同的值为“1”,因此它们目前必须是相同的。 - user1032531PASSWORD_DEFAULT
旨在保持未来的兼容性。根据文档:PASSWORD_DEFAULT
表示使用bcrypt算法(自PHP5.5.0起默认)。请注意,该常量的设计目的是随着时间推移而改变,因为PHP会添加新的和更强大的算法。因此,使用此标识符的结果长度可能会随时间而变化。因此,建议将结果存储在可以扩展到60个字符以上(255字符是一个好选择)的数据库列中。PASSWORD_DEFAULT
和PASSWORD_BCRYPT
之间没有区别。有关详细信息,请参见此处。