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

时间:2012-07-22 21:34:52

标签: hash passwords sha1 salt

我需要在我的网上商店保护一些区域以供管理员使用。 问题是用户身份验证:salt + hash失败。

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

$salt = rand(0, 999999999999);<br>
$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']) 

现在我遇到的问题是一些哈希看起来是一样的。 如果我尝试使用字母数字密码登录,无论该密码的内容是什么,我都会成功。 完整登录检查:http://pastebin.com/WjVnQ4aF

有人可以解释一下我做错了吗?

1 个答案:

答案 0 :(得分:0)

嗯,SQL注入,使用SHA代替密码而不是bcrypt是我看到的第一件事,不是使用OpenId,所以你可以摆脱存储密码的业务是另一回事。

至于密码是否相同,我会检查数据库 - 看看你存储的内容,它会告诉你问题所在。