【发布时间】:2018-11-02 22:10:16
【问题描述】:
我正在使用带两个参数的 password_verify,即存储在数据库中的哈希值和用户输入的实际密码。 代码如下:
$pass = filter_input(INPUT_GET, 'password', FILTER_DEFAULT);
// connecting to the database and executing query, the password is stored in $dpass
if(password_verify($pass,$dpass))
echo "Hello User " . $dname;
else
echo "Login incomplete";
现在只是为了澄清:
-
我数据库中的
Password列是varchar(256) - 注册时使用与登录时相同的过滤功能
- 我尝试
password_verify()我的密码与注册期间出现的哈希值相同,但没有使用数据库返回值(回显哈希、复制和粘贴) - 我回显了哈希值和输入的密码值,它们都是正确的
-
BCRYPT和DEFAULT我都试过了,但都没有正确验证
可能是什么问题?
【问题讨论】:
-
数据库中的密码哈希是用
password_hash创建的吗?只是确保... -
如果
password_verify($pass, password_hash($pass, PASSWORD_DEFAULT))“有效”,那么问题是 $dpass 不包含预期的内容 - 包括未正确生成(所以它包含的 是什么,以及为什么不符合预期?)。如果它“不起作用”,则 another 行会导致观察到的行为。这两种结果都允许专注于精炼的问题集。 -
@Don'tPanic 当然是的
-
@user2864740 非常感谢!我正在寻找这样的建议来帮助我更好地识别问题,我会尝试并评论我的结果
-
是的,你会认为“当然”,但我看到很多问题并非如此,所以我总是问。无冒犯
标签: php password-hash