Hash 用户身份验证失败/w哈希

Hash 用户身份验证失败/w哈希,hash,passwords,sha1,salt,Hash,Passwords,Sha1,Salt,我需要保护我的网络商店中的一些区域,以供管理员使用。 问题在于用户的身份验证:salt+哈希失败 这是我创建密码的代码(使用PHP5.x): $salt=rand(099999999) $passEncr=sha1($pass1+salt); 此变量$passEncr与其salt一起插入数据库 在登录页面,我进行了以下检查: $password = $_POST['password']; // hash+salt in the database $storedSalt = $row['sal

我需要保护我的网络商店中的一些区域,以供管理员使用。 问题在于用户的身份验证:salt+哈希失败

这是我创建密码的代码(使用PHP5.x):

$salt=rand(099999999)
$passEncr=sha1($pass1+salt);
此变量$passEncr与其salt一起插入数据库

在登录页面,我进行了以下检查:

$password = $_POST['password']; // hash+salt in the database

$storedSalt = $row['salt']; // salt from database<br>
if (sha1($password + $storedSalt) == $row['password']) 
$password=$\u POST['password'];//数据库中的hash+salt
$storedSalt=$row['salt'];//来自数据库的盐
如果(sha1($password+$storedSalt)==$row['password'])
现在我遇到的问题是,有些散列看起来是一样的。 如果我尝试使用字母数字密码登录,无论密码的内容是什么,我都会成功。 在此处进行完整登录检查:


有人能解释一下我做错了什么吗?

好吧,我首先看到的是SQL注入,使用SHA而不是bcrypt作为密码,而不使用OpenId这样你就可以不用存储密码了

至于密码是否相同,我会检查数据库——查看您存储的内容,这将告诉您问题所在

$password = $_POST['password']; // hash+salt in the database

$storedSalt = $row['salt']; // salt from database<br>
if (sha1($password + $storedSalt) == $row['password'])