我目前正在为基于Raspberry Pi的家庭自动化系统开发用户身份验证系统。 不幸的是,我无法使password_verify()函数正常工作。
运行此代码时:
$hash = '$argon2i$v=19$m=100,t=100,p=2$ZTRqTEVtNmp3aEo4cmJyUQ$bUYczGvH2oo2PN7ROHpay0PUL80alUeSAHWWq2BHHQ4';
if (password_verify('admin', $hash))
{
echo 'password correct';
}
else
{
echo 'password incorrect';
}
在我的本地计算机上,它可以正常工作,并指出密码正确。 但是,当我在Raspberry Pi服务器上运行它时,提示密码错误。
Raspberry Pi服务器上的PHP版本:PHP 7.0.30-0 + deb9u1
本地计算机上的PHP版本:PHP 7.2.7-0ubuntu0.18.04.2
Raspberry Pi服务器:Apache / 2.4.25(Raspbian)
用于生成哈希的函数:
function genHash($input)
{
$options =
[
'memory_cost' => 100,
'time_cost' => 100,
'threads' => 2,
];
return password_hash($input, PASSWORD_ARGON2I, $options);
}
答案 0 :(得分:1)
PASSWORD_ARGON2I
是在PHP 7.2.0中添加的,因此任何运行PHP <7.2.0的东西,例如RspberryPi,将无法验证使用该算法创建的哈希。