Documentation Home
MySQL 8.0 参考手册  / 第 6 章 安全  / 6.1 一般安全问题  / 6.1.2 保证密码安全  /  6.1.2.5 MySQL 4.1 密码散列变化对应用程序的影响

6.1.2.5 MySQL 4.1 密码散列变化对应用程序的影响

PASSWORD()升级到 MySQL 4.1 或更高版本可能会导致用于为自己的目的生成密码的 应用程序出现兼容性问题 。应用程序真的不应该这样做,因为PASSWORD()应该只用于管理 MySQL 帐户的密码。但无论如何,有些应用程序会PASSWORD()出于自己的目的使用它们。

如果您从 4.1 之前的 MySQL 版本升级到 4.1 或更高版本,并在生成长密码哈希的条件下运行服务器,则使用 PASSWORD()其自己的密码的应用程序会中断。在这种情况下,建议的操作过程是修改应用程序以使用另一个函数(例如 SHA2()SHA1()MD5())来生成散列值。如果那不可能,您可以使用该 OLD_PASSWORD()函数,该函数用于以旧格式生成短散列。但是,您应该注意, OLD_PASSWORD()可能有一天不再受支持。

如果服务器正在运行 old_passwords=1,它会生成短哈希值,OLD_PASSWORD() 相当于PASSWORD().

将 MySQL 数据库从 4.0 或更低版本迁移到 4.1 或更高版本的 PHP 程序员应该看到 MySQL 和 PHP