php - 验证失败,即使密码正确,使用 bcrypt 哈希方法

标签 php mysql authentication bcrypt

我在使用bcrypt哈希方法和mysql时遇到问题。我正在使用 this answer 中的 Bcrypt 类.

我正在创建登录脚本并检查密码是否为 正确的。我正在比较输入的密码和散列的密码 来自数据库的密码。

$username= $_POST['username']; //username from input
$pass= $_POST['pass'];         //username from input

$query= mysql_query("SELECT pass FROM users WHERE username='$username'");
    $row=  mysql_fetch_row($query);

$row[0];// hashed password, I echo $row[0] and it shows correct hashed password

$bcrypt = new Bcrypt(15);
$isGood = $bcrypt->verify($pass, $row[0]);

if ($isGood){
echo "Authentication succeeded";
          }
else { 
    echo"Authentication failed";
   }

即使 $pass 是正确的,我总是得到“身份验证失败”。 有什么想法,可能有什么问题吗?

提前谢谢您。

最佳答案

users 表中的 pass 列不够宽,无法存储完整的哈希值;它的宽度至少应为 60 个字符,即 VARCHAR(60)

顺便说一句,你应该看看 PasswordLib也由 ircmaxell 编写和维护,它也很好地支持 Bcrypt。

关于php - 验证失败,即使密码正确,使用 bcrypt 哈希方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13953381/

相关文章:

wcf - 关于使用 WCF 进行 HMAC 身份验证的说明

mysql - 初学者 SQL,终止加载 csv 的字段。以逗号结尾

javascript - Seleniumwebdirver 与 Java 登录身份验证失败;传递正确的凭据

php - 在 Active Record 样式 ORM 中实现预加载的干净方法?

javascript - 从其他页面调用时在 PHP 中调试 MySQL 查询

php - 在 PHP 中搜索给定数组的部分查询

php - Magento 管理配置设置不会保存

mysql - 建立数据库连接时出错 - WordPress 和 mysql

php - 允许用户使用通配符的安全性

ios - Swift 中的 PFUser logInWithUsernameInBackground - 参数 'target' 调用缺少参数