php - password_hash 每次返回不同的值

标签 php hash passwords php-password-hash

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

$password = password_hash($password4, PASSWORD_DEFAULT);

这是我的验证代码:

if(password_verify($password4, $dbpassword))

最佳答案

所以让我们一个一个地看

but it returns a different hash every time

就是这个意思。 password_hash 旨在每次生成一个随机盐。这意味着您必须单独分解每个散列,而不是猜测用于所有内容的一种盐并有很大的优势。

无需MD5 或进行任何其他散列。如果你想提高 password_hash 的安全性,你可以传递更高的成本(默认成本为 10)

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

至于验证

if(password_verify($password4, $dbpassword))

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

关于php - password_hash 每次返回不同的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33108720/

相关文章:

php - 在 PHP 中绑定(bind)参数的高效循环

PHP 生成一个 crontab

security - SHA-256 哈希值能否从相同数据的 SHA-512 哈希值导出?

c++ - 如何在 C++ 中创建强密码字符串?

JQuery 变量中的 PHP?

php - 带有 Auth 的 Yii2 CORS 不适用于非 CRUD 操作

java - 何时使用 MessageDigest.reset()

android - facebook native android 应用程序不接受我的 key 哈希

r - 从终端安全地向 R 应用程序提供密码的方法?

php - password_hash、Password_default 导致问题