0

我第一次尝试 php,我正在使用 password_compat,因为服务器运行的是 php <5.5 版本。

我有一组用户详细信息,已自动存储到数据库中。每个用户都有一个生成的唯一盐$random_salt = mcrypt_create_iv(24, MCRYPT_DEV_URANDOM);,我尝试将其作为 blob 存储到数据库中,然后我将哈希密码存储在以下内容中

$options = array('cost' => 8, 'salt' => $random_salt); 
$password = password_hash($password, PASSWORD_BCRYPT, $options);

为了验证我查询数据库,获取我的匹配项并将 salt 属性传递给变量 $salt,并获取存储的散列密码。最后使用以下

$options = array('cost' => 8, 'salt' => $salt); 
$password = password_hash($password, PASSWORD_BCRYPT, $options);
$intVar = (int) password_verify($password, $db_password);

到目前为止,我仅在一次登录上的结果是不匹配的。

我哪里错了?它是盐的数据库属性数据类型吗?我使用password_hash?

4

1 回答 1

2

我刚刚发现当自动进入数据库时​​,回车符“\r”仍然存在于我的密码末尾,通过制表符分隔的文件读入。该程序一直是正确的。我的密码错了一个 "\r" 。

于 2013-11-24T15:32:24.320 回答