【问题标题】:password_verify function in php is not working despite proper varchar length [duplicate]尽管 varchar 长度正确,但 php 中的 password_verify 函数不起作用[重复]
【发布时间】:2018-09-20 09:14:56
【问题描述】:

我正在学习 php,并且正在尝试这个 php 函数,但由于某种原因,尽管在这里尝试了所有答案,但它仍然无法正常工作。 我使用 password_hash 函数对“b”进行了哈希处理并尝试验证它。这是我的代码

if(password_verify('b', 
'$2y$10$OCZvoaVXX00xBkwpfGfgOu9AGXutvcZkhvpqSVWpL6v.BNnLsAN4u')){
echo "valid";
}else{
echo "invalid";
}

【问题讨论】:

  • 请向我们展示所有代码(包括散列)。在不知道您是如何获得该哈希值的情况下,我们将无法评估实际发生的情况。
  • 您的代码使用新生成的密码哈希。你用什么盐来生成你的哈希?
  • 3v4l.org/kMaIL 按预期工作
  • 是的,你们是对的。实际上,那天的问题是哈希。原来我在散列一个空字符串。

标签: php password-hash


【解决方案1】:

这是一个空字符串的哈希:

$hash = '$2y$10$OCZvoaVXX00xBkwpfGfgOu9AGXutvcZkhvpqSVWpL6v.BNnLsAN4u';
var_dump(password_verify('', $hash));

布尔(真)

找出您从哪里获取输入并从那里返回,因为它绝对不是 b

【讨论】:

  • 谢谢。你说的对。那天我不小心最终散列了空字符串。很久以后我才意识到这一点。再次感谢您的宝贵时间。
猜你喜欢
  • 2017-11-09
  • 1970-01-01
  • 2017-06-18
  • 2021-01-06
  • 1970-01-01
  • 1970-01-01
  • 2015-09-30
  • 1970-01-01
  • 2018-02-27
相关资源
最近更新 更多