加密函数用于对数据做摘要、编码或解码处理。它们常用于密码摘要、校验串生成、简单的内容保护等场景。
PASSWORD() 是 MySQL 早期版本中的一个密码相关函数。
示例:
SELECT PASSWORD('mypassword');
但需要注意:
因此在业务系统中,不建议把 PASSWORD() 当作应用层密码存储方案。
MD5() 用于生成字符串的 MD5 摘要值。
示例:
SELECT MD5('mysql');
SELECT MD5('123456');
它通常会返回一个 32 位十六进制字符串。
常见用途:
不过 MD5 已经不适合用于高安全要求的密码存储,只适合做一般性的摘要或兼容旧系统。
ENCODE() 和 DECODE() 用于按指定密码对字符串进行编码和解码。
示例:
SELECT ENCODE('hello', 'key123');
SELECT DECODE(ENCODE('hello', 'key123'), 'key123');
可以理解为一种较简单的可逆处理方式。
它更适合:
但对于真正的安全场景,例如密码、密钥、用户隐私数据,不能依赖这类简单函数作为完整安全方案。
实际业务中应当遵循以下原则:
MD5() 当作高安全密码方案。PASSWORD() 当作业务密码存储方式。MySQL 自带的加密函数更适合做基础摘要、演示和轻量处理,不适合作为完整的现代安全方案。学习这些函数的重点在于理解它们的用途边界,而不是把它们直接当作生产级密码系统。