password_hash每次都返回不同的值

Itz*_*Pig 13 php passwords hash php-password-hash

我正在创建一个登录系统,我想对密码进行散列以使它们更安全,但每次都返回一个不同的散列,甚至无法使用password_verify()进行验证,这是我的代码:

$password = password_hash($password4, PASSWORD_DEFAULT);
Run Code Online (Sandbox Code Playgroud)

这是我的验证代码:

if(password_verify($password4, $dbpassword))
Run Code Online (Sandbox Code Playgroud)

Mac*_*ity 28

所以让我们一次把它作为一部分

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

这就是主意.password_hash设计用于每次生成随机盐.这意味着你必须单独打破每个哈希,而不是猜测一个用于所有东西的盐并且有一个巨大的支撑.

没有必要MD5或做任何其他散列.如果你想提高你的安全性,password_hash可以通过更高的成本(默认成本是10)

$password = password_hash($password4, PASSWORD_DEFAULT, ['cost' => 15]);
Run Code Online (Sandbox Code Playgroud)

至于验证

if(password_verify($password4, $dbpassword))
Run Code Online (Sandbox Code Playgroud)

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