密码散列API查询

Sat*_*tan 7 php mysql hash bcrypt php-password-hash

所以我使用的是新的PHP 5.5 Password Hashing API,我不确定我是否正确使用了它.

我已经尝试自动重新登录每次登录,有时我失败了,即使哈希结果是相同的,我觉得我做错了.

它可能是我可能错误的查询函数,因为当我检查phpMyAdmin时哈希甚至没有改变.

if (password_needs_rehash($result_row->user_password_hash, PASSWORD_DEFAULT))
{
    $newhash = password_hash(
        $_POST['user_password'], PASSWORD_BCRYPT, 
        ['cost' => 12, 'salt' => 'superfreakingsonicdude',]
    );

    // update hash in database
    $this->connection->query(
        "UPDATE users SET user_password_hash='" . $newhash .  
        "' WHERE user_name='".$result_row->user_name."'"
    );
}
Run Code Online (Sandbox Code Playgroud)

您可以在这里找到所有功能.

dec*_*eze 3

哈希的输入是密码和盐。相同的密码,相同的盐,相同的结果。
如果省略该salt参数,每次都会生成随机盐,并且您应该得到不同的结果。您不应该提供静态盐。这意味着所有用户都使用相同的盐,这大大降低了其有效性。每个单独的哈希需求都应该有一个随机盐。