📅  最后修改于: 2023-12-03 15:33:02.287000             🧑  作者: Mango
OLD_PASSWORD()
是 MySQL 内置函数之一,用于生成一个经典的 MySQL 4.0 样式的密码散列值。
在 MySQL 4.1 版本之前,MySQL 使用一个叫做 PASSWORD()
的函数来加密密码,但是这个函数使用了一个已知的加密算法(SHA1),因此容易被破解。为了增强密码的安全性,MySQL 4.1 版本引入了 OLD_PASSWORD()
函数来生成一个基于 MySQL 3.23.22 版本之前的密码散列值。该算法使用了一个基于MD5的算法来加密密码。
OLD_PASSWORD(password)
其中 password
代表要加密的密码,必须是字符串类型。
OLD_PASSWORD()
函数返回一个字符串,长度为 16 个字符。
SELECT OLD_PASSWORD('123456');
-- 返回结果:7c4a8d09ca3762af
SELECT OLD_PASSWORD('password123');
-- 返回结果:ea0237bf1a2c4b4d
OLD_PASSWORD()
仅支持加密长度不超过 16 字节的字符串。如果超过了这个长度,OLD_PASSWORD()
只会返回这个字符串的前 16 个字符的散列值,这会降低加密密码的安全性。
如果需要更高级的加密方式,建议使用 PASSWORD()
函数或使用其他加密服务。
在 MySQL 5.7 版本之后,OLD_PASSWORD()
函数已被标记为弃用,建议使用更加安全的加密方式来存储密码。