php - password_verify 始终返回 false
问题描述
我在password_verify
验证密码时遇到问题。
我将密码存储在数据库中
password_hash($password, PASSWORD_DEFAULT)
在登录页面上,我让用户输入他们的用户名和密码并通过 post 方法检索输入$_POST['pwd']
(这是用户输入的密码)。
然后我从数据库中检索哈希密码,并根据登录密码检查它
if(password_verify($password, $results['password']))
我似乎无法弄清楚为什么密码似乎永远不会匹配。我读过过滤器/转义也可以影响password_verify()
和改变它并得到相同的结果。任何帮助,将不胜感激。
<?PHP
include('connection.php');
if(isset($_POST['submit'])){
$username = trim(filter_input(INPUT_POST, 'username', FILTER_SANITIZE_STRING));
$password = trim(filter_input(INPUT_POST, 'pwd', FILTER_SANITIZE_STRING));
$sql = $db->query("SELECT password FROM users WHERE username = '$username'");
$results = $sql->fetch(PDO::FETCH_ASSOC);
$savedHash = $results['password'];
//echo $savedHash;
if(password_verify($password, $savedhash)){
echo "yes " . $password;
}else{
echo "no";
}
?>
解决方案
推荐阅读
- ember.js - Ember 中的嵌套后端资源
- swift - 为什么不播放声音?
- r - 重塑数据以绘制网络
- cassandra - 水平压实不压实到更高水平
- visual-studio-2019 - Visual Studio 2019 新解决方案位置
- mysql - 允许 Laravel 多对多迁移有多个相同的组合
- python - 模式模块问题(NLP学习)
- angular - 对于使用 USB/硬件 API 的 Desktop/Touch Angular App,我应该使用哪些框架?
- c# - TimeSpan.ParseExact 返回 System.FormatException
- neo4j - 如何在neo4j中查询where in where