检查日志记录哈希加密密码与数据库中保存的哈希密码匹配的方法是什么

时间:2017-12-07 10:40:30

标签: php security encryption login hash-function

我使用sha512.js文件,出于安全考虑,我将密码作为哈希值发送给帖子请求。现在我想检查数据库中的保存哈希密码。 当我检查我的浏览器时可以看到密码作为哈希值。然后在我的php文件中,我获得了带有post请求的密码值。然后我想用数据库保存的值检查它。

我的帖子请求密码值如 - 7d4ad2ce44e568064beb480525a563daf85c676795f4083b7e177553af273ffecff41c2bbbe64428d9c0ca37744bcea4de218d356037337bcd41129bb1681b13

$email = $_POST['email'];
$passwordFromPost = $_POST['p'];

// $passwordFromPost = '7d4ad2ce44e568064beb480525a563daf85c676795f4083b7e177553af273ffecff41c2bbbe64428d9c0ca37744bcea4de218d356037337bcd41129bb1681b13';

我的数据库密码是 - :

$hashedPasswordFromDB = '$2y$11$2Nmsc11WWGZ1xEB8P3zWCezVv4QCe48BVQ8vJbXOkByUXIioWH.AS'

if (password_verify($passwordFromPost, $hashedPasswordFromDB)) {
    echo 'Password is valid!';
} else {

如何使用db哈希值检查发布请求哈希值。

1 个答案:

答案 0 :(得分:2)

不要在客户端中散列密码,使用HTTPS在POST数据中以纯文本形式发送密码。发送密码的哈希值只会使哈希值成为密码。

使用PHP password_hashpassword_verify,该对安全且易于使用。

更多信息:仅使用哈希函数保存密码验证程序是不够的,只添加盐对提高安全性几乎没有作用。而是使用PBKDF2Rfc2898DeriveBytesArgon2password_hashBcrypt或类似函数等函数,持续时间约为100毫秒。关键是要让攻击者花大量时间通过蛮力找到密码。