gpt4 book ai didi

php - 使用 password() 散列的 mysql 传输密码

转载 作者:行者123 更新时间:2023-11-29 00:16:33 26 4
gpt4 key购买 nike

我正在尝试传输一个大型 MySQL 数据库,其中包含用户及其凭据的哈希表

存储在这些表中的用户密码是使用 MySQL password() 方法存储的。将它们转移到新机器后,散列密码似乎不再有效。

有什么方法可以将 password() 加密字段传输到新服务器并使它们正常工作吗?谢谢

* 编辑 *

我确实遇到了兼容性问题。我的 MySQL 版本生成 16 字节哈希密码,但是我安装的新版本 MySQL 使用新的 41 字节哈希方法。

但是,我找到了解决办法,

然后我在 my.cfg MySQL 配置中设置了 old_passwords=1,新版本的 mysql 将使用旧的密码散列。但是,我不建议任何人这样做,因为较新的 mysql 服务器的新散列方法更好、更安全。遗憾的是,我不能这样做,因为我在服务器上有超过 100 个应用程序

最好的方案是上面dlyaza提供的。

最佳答案

您正面临 MySQL password() 函数的兼容性问题,请详细阅读本文:6.1.2.4 Password Hashing in MySQL .

简而言之,MySQL 提供了 old_password() 用于从旧服务器迁移到新服务器时的兼容性。因此,对于新服务器,您可以使用:

SELECT old_password('测试')

解决此问题的过程:

  1. 在表中添加新的文件作为 password2 或任何名称。
  2. 使用 old_password() 对新服务器上的用户进行身份验证,如果密码有效,则在步骤 1 中创建的字段中保存一个副本。
  3. 一旦你转换了所有的用户密码,你就可以正常使用password()了。

关于php - 使用 password() 散列的 mysql 传输密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22782796/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com