如果在php中更新默认密码\u散列,是否会影响用户将来的登录尝试?

如果在php中更新默认密码\u散列,是否会影响用户将来的登录尝试?,php,php-password-hash,Php,Php Password Hash,假设您正在使用内置于php中的password_hash和password_verify函数,并使用默认的哈希算法(当前为bcrypt)。现在,假设这是默认值,如果更改,这将影响将来的密码验证功能,不是吗?那么,程序员将来是否需要编写代码来检查这一点,即,如果密码为默认值!=bcrypt,使用bcrypt继续验证过程,然后根据新算法更新数据库 否,更改算法或成本不会影响密码验证,因为算法和成本是存储哈希的一部分。如果您看到密码的规格,请对其状态进行哈希 使用的算法、成本和salt作为散列的一部分

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

否,更改算法或成本不会影响密码验证,因为算法和成本是存储哈希的一部分。如果您看到密码的规格,请对其状态进行哈希

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


您可以使用password\u needs\u rehash检查是否需要更新存储的密码。所以PHP已经为您提供了所有这些支持,使得以安全的方式对密码进行散列变得容易

到处寻找这个问题/答案。非常感谢,巴德!