我正在构建一个前端用户配置文件部分,用户可以在其中更改其登录密码。
为了安全起见,我希望用户先输入当前密码,然后才能输入新密码。
但是我不知道如何加密密码,就像可以根据数据库中的值进行检查一样。使用我的方法,我总是得到一个具有相同输入值的不同字符串。
你有什么想法吗?
这是我现在正在尝试的:
$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>";
我正在使用混凝土5版本5.6.3.3。
我如何看到 concrete5 使用外部库HautelookPhpassPasswordHash
,这个类有方法 CheckPassword
:
https://github.com/hautelook/phpass/blob/f0217d804225822f9bdb0d392839029b0fcb0914/src/Hautelook/Phpass/PasswordHash.php#L305-L313
因此,您必须从数据库中获取用户并运行此方法以比较密码哈希。
我希望它会有所帮助