MySQL版本之间的PASSWORD实现不兼容

时间:2011-02-11 04:02:08

标签: php mysql passwords

声明

是的,我知道:不要使用 PASSWORD(password) 来加密密码

我不想 - 知道我坚持使用它,因为这是我的前任在我到达之前所使用的。

我的问题是这个

最近,我们的MySQL服务器出现故障,无法重新启动。然后我被要求将我们的一个Web服务器设置为MySQL服务器并将最新的备份导入其中。我快速安装了MySQL服务器并导入了数据库。该网站已经恢复,大家都很高兴。

不久:似乎没有人可以登录 - 从我在线阅读的内容看来,MySQL版本之间PASSWORD('some pass')的结果似乎存在差异。

我的问题是:除了强制更改每个人的密码并通过电子邮件发送给他们之外,我还有办法让用户保留旧密码吗?

如果没有,那么现在是时候咬紧牙关,改变每个人的密码 - 但这次使用SHA1。

1 个答案:

答案 0 :(得分:4)

只需检查MySQL版本。如果它是> = 4.1,只需使用OLD_PASSWORD()函数而不是PASSWORD。 (因为你已经知道,我不会谈论这些功能的滥用)。

但是有一个选择,就是让他们使用那个旧函数登录,然后成功自动更新为类似强大的盐渍SHA1 ...而且不要使用数据库哈希函数,因为你需要传输密码查询中的纯文本(这不是一个好主意)......