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