【发布时间】:2017-12-07 10:40:30
【问题描述】:
我使用 sha512.js 文件,出于安全目的,我将密码作为哈希值与 post 请求一起发送。现在我想检查数据库中的保存哈希密码。 当我检查浏览器时,可以将密码视为哈希值。然后在我的 php 文件中,我通过发布请求获取密码值。然后我想用数据库保存的值来检查它。
我的帖子请求密码值如 - 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 哈希值检查发布请求哈希值。
【问题讨论】:
-
在将密码发送到网络服务器之前,您在浏览器中对密码进行哈希处理有什么特别的原因吗?如果您使用的是 https(应该如此),那么您不需要这样做
-
创建用户记录时是否通过注册屏幕发送相同的哈希?
-
我发送密码值并将其哈希值保存在数据库中。然后密码行 vancab12390909 和哈希值将在数据库中,如 $2y$11$2Nmsc11WWGZ1xEB8P3zWCezVv4QCe48BVQ8vJbXOkByUXIioWH.AS
-
我使用了这个函数 $hash = password_hash($passwordFromPost, PASSWORD_BCRYPT, $options);
-
您应该使用带有安全证书的 https 页面(而不是 http),而不是使用 sha512.js……这就是每个主要网站在浏览器和服务器之间维护安全性的方式
标签: php security encryption login hash-function