我正在构建一个前端用户个人资料部分,用户可以在其中更改登录密码。
为了安全起见,我希望用户先输入他当前的密码才能输入新密码。
但我无法弄清楚如何根据数据库中的值检查密码的加密方式。通过我的方法,我总是得到一个使用相同输入值生成的不同字符串。
你有什么想法吗?
以下是我现在正在尝试的内容:
$oldPassword = $ui->getUserPassword();
echo"<pre>"; var_dump($oldPassword); echo"</pre>";
$pw = User::getUserPasswordHasher();
//echo"<pre>"; var_dump($pw); echo"</pre>";
$controlPassword = User::getUserPasswordHasher()->HashPassword('stern3');
echo"<pre>"; var_dump($controlPassword); echo"</pre>";
我正在使用concrete5版本5.6.3.3。
答案 0 :(得分:3)
我如何看到concrete5使用外部库Hautelook\Phpass\PasswordHash
,此类有方法CheckPassword
:
因此,您必须从DB获取用户并运行此方法来比较密码哈希值。
我希望它会有所帮助