password_verify在Raspberry Pi(PHP7)上不起作用

时间:2018-08-19 14:12:11

标签: php raspberry-pi

我目前正在为基于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);
}

1 个答案:

答案 0 :(得分:1)

PASSWORD_ARGON2I是在PHP 7.2.0中添加的,因此任何运行PHP <7.2.0的东西,例如RspberryPi,将无法验证使用该算法创建的哈希。