对于我的php-login系统与MySQL数据库的结合,我使用md5 - 加密来在用户注册时转换密码。在Windows主机上一切正常, 但是现在我把主机改成了Linux。 现在,当我注册一个示例用户,密码为“azerty”时,我无法登录... 当我以“qwerty”作为密码登录时,它可以工作。 所以就像md5函数将我的键盘读作qwerty键盘而不是azerty ......
我该怎么做才能解决这个问题?
修改
在注册脚本中我这样做:
$password = md5($password);
然后将$password
保存到我的数据库中。
loginscript检查:
if ($username == $dbusername && md5($password) == $dbpassword)
答案 0 :(得分:1)
切换主机无关紧要。如果您可以使用“querty”登录,那么您必须无意中注册并使用“querty”
当您测试系统时,请使用正常的<input type="text">
,这样您就可以查看您正在键入的内容。完成测试后切换<input type="password">
。此外,添加“验证密码”字段,以便您可以验证用户是否意外错误地输入了密码。
在users表中添加一个名为“salt”的字段
在注册脚本中执行以下操作:
$salt = time();
$code = hash('sha256', $password . $salt);
将$code
和$salt
保存在users表中。
在loginscript中检查:
if ($username === $dbusername && hash('sha256', $password . $dbsalt) === $dbpassword)