繁体   English   中英

如果默认的password_hash哈希值已在php中更新,这是否会影响用户将来的登录尝试?

[英]If the default password_hash hash gets updated in php, does this affect future login attempts by a user?

假设您使用的是内置在php中的password_hash和password_verify函数,并使用默认的哈希算法(当前为bcrypt)。 现在,假设这是默认设置,并且如果更改,那么将来会影响password_verify函数,不是吗? 那么,程序员将来是否需要编写代码来进行检查,即如果PASSWORD_DEFAULT!= bcrypt,则使用bcrypt继续进行验证过程,然后还使用新算法来更新数据库?

不,更改算法或费用不会影响password_verify,因为算法和费用是存储的哈希的一部分。 如果您看到password_hash的规范,请注明

使用的算法,成本和盐作为哈希的一部分返回。 因此,其中包含验证哈希所需的所有信息。 这允许password_verify()函数验证哈希值,而无需单独存储盐或算法信息。

您可以使用password_needs_rehash http://php.net/manual/zh/function.password-needs-rehash.php来检查是否需要更新存储的密码。 因此,PHP已经为您提供了所有支持,从而使以安全的方式对哈希进行哈希变得容易。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM