password_verify如何在不知道盐和成本的情况下验证密码


How can password_verify validate passwords without knowing salt and cost?

新的PHP密码API中的password_verify()函数检查密码是否与哈希值相对应。哈希是由password_hash()生成的,默认情况下使用随机盐和cost = 10

我一直认为(尽管我从未研究过),你必须将盐存储在数据库中,然后当你想要验证密码时,使用相同的成本使用给定的盐对其进行哈希。在不知道盐和成本的情况下,password_verify()如何检查密码?

password_hash()返回的字符串不仅包含哈希值,还包含算法、代价和盐。