password_hash每次返回不同的值

2022-08-30 17:43:08

我正在制作一个登录系统,我想对密码进行哈希处理以使其更安全,但它每次都会返回不同的哈希值,甚至无法使用password_verify()进行验证,这是我的代码:

$password = password_hash($password4, PASSWORD_DEFAULT);

这是我用于验证的代码:

if(password_verify($password4, $dbpassword))

答案 1

因此,让我们一次一个部分地进行

但它每次都返回不同的哈希值

这就是我们的想法。 设计为每次生成随机盐。这意味着您必须单独打破每个哈希值,而不是猜测用于所有事情的盐并拥有巨大的优势。password_hash

无需或执行任何其他哈希处理。如果要提高安全性,则通过更高的成本(默认成本为10)MD5password_hash

$password = password_hash($password4, PASSWORD_DEFAULT, ['cost' => 15]);

至于验证

if(password_verify($password4, $dbpassword))

所以应该是你的未哈希密码,应该是你存储在数据库中的哈希$password4$dbpassword


答案 2

推荐