2012-07-22 245 views
0

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

这是我(使用PHP5.x)创建口令代码:

$salt = rand(0, 999999999999);<br> 
$passEncr = sha1($pass1 + $salt); 

这个变量$ passEncr与盐插入到数据库在一起。

在登录页面上我已经得到了以下检查:

$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

有人可以请解释我做错了什么?

回答

0

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

至于密码是相同的,我会检查数据库 - 看看你正在存储什么,它会告诉你你的问题在哪里。