在将密码存储到用户数据库之前,我正在尝试散列密码,因此我运行以下代码:
$hashedPass = password_hash($pass, PASSWORD_DEFAULT);这段代码给出了一个值,比如存储在数据库中的$2y$10$wAJr0Z1spRtOcK4cLhIkguUCKgwZKYrwm.nRhm6AtCfDH8ri7ylJu。现在,当我尝试登录时,与密码相同的字符串提供了一个完全不同的$2y$10$cayCQDSQ6pCICSozuIgBNu9uIopIoT5R6Y7aHXG6wx4v/oKx.Ipse :例如,$hashedPass
这只是随机的吗?有什么我该用的吗?
发布于 2017-12-17 01:30:13
这是预期的行为。password_hash生成一个salt,它与明文密码一起使用以生成哈希。salt是随机生成的,所以每次调用password_hash时输出都会不同。
使用password_verify验证密码。
http://php.net/manual/en/function.password-verify.php
password_verify验证明文密码所需的所有信息都包含在散列本身中。对于您提供的密码散列,哈希的剖析取决于所使用的算法:
$2y$10$wAJr0Z1spRtOcK4cLhIkguUCKgwZKYrwm.nRhm6AtCfDH8ri7ylJuhttps://stackoverflow.com/questions/47851446
复制相似问题