Php md5加密qwerty-azerty错误

Php md5加密qwerty-azerty错误,php,md5,Php,Md5,对于结合了MySQL数据库的php登录系统,我使用md5加密在用户注册时转换密码。在Windows主机上一切正常, 但是现在我把主机改成了Linux。 现在,当我使用密码“azerty”注册一个示例用户时,我无法登录。。。 当我尝试以“qwerty”作为密码登录时,它就起作用了。 所以它就像md5函数把我的键盘读成qwerty键盘而不是azerty 我能做些什么来解决这个问题 编辑: 在注册脚本中,我执行以下操作: $password = md5($password); 然后将$passwor

对于结合了MySQL数据库的php登录系统,我使用md5加密在用户注册时转换密码。在Windows主机上一切正常, 但是现在我把主机改成了Linux。 现在,当我使用密码“azerty”注册一个示例用户时,我无法登录。。。 当我尝试以“qwerty”作为密码登录时,它就起作用了。 所以它就像md5函数把我的键盘读成qwerty键盘而不是azerty

我能做些什么来解决这个问题

编辑:

在注册脚本中,我执行以下操作:

$password = md5($password);
然后将
$password
保存到我的数据库中

loginscript将检查以下内容:

if ($username == $dbusername && md5($password) == $dbpassword)

你换了主机没关系。如果您可以使用“querty”登录,那么您一定是无意中注册了“querty”

测试系统时,请使用普通的
,以便查看所键入的内容。完成测试后,将其切换为
。另外,添加一个“验证密码”字段,这样您就可以验证用户没有意外地输入错误的密码

安全密码存储入门 在用户表中添加一个名为“salt”的字段

在注册脚本中,执行以下操作:

$salt=time();
$code=hash('sha256',$password.$salt);
在用户表中保存
$code
$salt

在loginscript中选中以下内容:

if($username===$dbusername&&hash('sha256',$password.$dbsalt)==$dbpassword)

这是一个假设问题吗?没有MD5加密。请显示一些调试输出示例。在MD5之前,密码字段实际上包含什么?还显示一些代码您确定您没有正确键入密码吗
Q
A
彼此非常接近。请显示一些示例调试输出。在MD5之前,密码字段实际上包含什么?一个'q'是一个'q',一个'A'是一个'A',不管它显示在键盘上的什么位置。重新排列键盘使其变成dvorak布局不会因为我移动了塑料盖而使我所有的密码失效。@John:谢谢。最近很多人都有这种情况。