我第一次尝试 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?