我在cpanel服务器上有一个数据库,其中包含一个名为“password”的用户字段。当我通过phpmyadmin查看该字段时,所有密码都显示为md5加密。
因此,例如,“12345”的密码将被加密并在数据库中显示为“e10adc3949ba59abbe56e057f20f883e”。 现在,在原始服务器上,没关系,因为即使密码在数据库中加密,当我在相关网站上输入密码为'12345'时,它识别它并提供访问权。
问题出在我导出和导入数据库时。将相同的数据库导入另一个服务器后,密码值仍然在数据库中加密。但是,当我尝试登录相关网站时,解密的密码,即'12345'不再有效。我必须输入密码“e10adc3949ba59abbe56e057f20f883e”,然后才能登录。所以我猜测问题是密码列中的数据在导入到另一个数据库后没有被解密,因此当我输入'12345'而不是扩展的md5值时,它不匹配并给我一个错误的密码错误
那么有人可以帮我解决这个问题吗?我应该将该网站迁移到另一台服务器及其学校系统上,目前我的用户都无法访问此问题。
感谢。
答案 0 :(得分:2)
md5不是加密,它是单向散列。您无法从哈希中找到原始值。
在第二台服务器上,如果e10adc3949ba59abbe56e057f20f883e密码有效,我看到的唯一原因是应用程序没有比较它从用户收到的输入值的哈希值,它正在比较输入值本身。