关于如何在php用户登录过程中使用bCrypt的困惑

时间:2013-05-24 16:07:06

标签: php pdo bcrypt

我正在使用php pdo在我的用户登录过程中使用mysql ate数据库。我已经尝试过bCrypt库进行密码加密。但我对如何用加密密码检查输入密码感到困惑?

这是我尝试过的代码:

$bcrypt = new Bcrypt(15);
$hash = $bcrypt->hash($password);
$isGood = $bcrypt->verify($password, $hash);

$login = new UserManager();
$getuserInfo = $login -> checkLogin($username, $password);
foreach ($getuserInfo as $userInfo) :
  if ($userInfo -> getUID() == $username) {
    if($userInfo -> getPassword() == $password) ?
  }
endforeach;

1 个答案:

答案 0 :(得分:0)

首先,。使用现有密码库。安全处理密码很难正确处理,你几乎肯定会弄错。

第二:您不能以这种方式比较密码($userInfo->getPassword() == $password)。假设您已经存储了散列密码(从您发布的微薄代码中确实不明显),那么您需要散列$password,并将散列值与存储的散列进行比较。这就是密码哈希的重点:哈希从同一输入产生相同的输出,因此在创建帐户时,您存储哈希密码的不可逆输出,然后在登录时哈希新提交的密码并将结果与​​存储的结果进行比较散列。