我需要在我的网上商店保护一些区域以供管理员使用。 问题是用户身份验证: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
有人可以解释一下我做错了吗?
答案 0 :(得分:0)
嗯,SQL注入,使用SHA代替密码而不是bcrypt是我看到的第一件事,不是使用OpenId,所以你可以摆脱存储密码的业务是另一回事。
至于密码是否相同,我会检查数据库 - 看看你存储的内容,它会告诉你问题所在。