PASSWORD_DEFAULT与PASSWORD_BCRYPT

rex*_*hin 15 php blowfish bcrypt php-password-hash

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

Mar*_*ker 22

目前PASSWORD_BCRYPT是唯一支持的算法(使用CRYPT_BLWFISH),因此目前在PASSWORD_DEFAULT和之间没有区别PASSWORD_BCRYPT.其目的PASSWORD_DEFAULT是允许将来包含其他算法,因此PASSWORD_DEFAULT将始终使用最强支持的散列算法.

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

  • @BSUK 是的,它将向后兼容,因为部分生成的数据包含使用的算法,因此 password_verify() 将始终知道如何验证哈希 (2认同)