Skip to content

Latest commit

 

History

History
76 lines (47 loc) · 1.97 KB

File metadata and controls

76 lines (47 loc) · 1.97 KB

加密函数

加密函数用于对数据做摘要、编码或解码处理。它们常用于密码摘要、校验串生成、简单的内容保护等场景。

加密函数PASSWORD

PASSWORD() 是 MySQL 早期版本中的一个密码相关函数。

示例:

SELECT PASSWORD('mypassword');

但需要注意:

  • 它主要是 MySQL 内部历史用途
  • 不适合作为通用业务密码加密方案
  • 在较新的 MySQL 版本中兼容性和可用性存在变化

因此在业务系统中,不建议把 PASSWORD() 当作应用层密码存储方案。

加密函数MD5

MD5() 用于生成字符串的 MD5 摘要值。

示例:

SELECT MD5('mysql');
SELECT MD5('123456');

它通常会返回一个 32 位十六进制字符串。

常见用途:

  • 内容摘要
  • 简单校验
  • 历史系统中的弱加密场景

不过 MD5 已经不适合用于高安全要求的密码存储,只适合做一般性的摘要或兼容旧系统。

加密函数ENCODE和DECODE

ENCODE()DECODE() 用于按指定密码对字符串进行编码和解码。

示例:

SELECT ENCODE('hello', 'key123');
SELECT DECODE(ENCODE('hello', 'key123'), 'key123');

可以理解为一种较简单的可逆处理方式。

它更适合:

  • 演示 MySQL 编码函数的基本用法
  • 对低敏感内容做简单隐藏

但对于真正的安全场景,例如密码、密钥、用户隐私数据,不能依赖这类简单函数作为完整安全方案。

使用建议

实际业务中应当遵循以下原则:

  1. 密码不要明文存储。
  2. 不要把 MD5() 当作高安全密码方案。
  3. 不要把 PASSWORD() 当作业务密码存储方式。
  4. 更高安全需求应交给应用层成熟加密库处理。

小结

MySQL 自带的加密函数更适合做基础摘要、演示和轻量处理,不适合作为完整的现代安全方案。学习这些函数的重点在于理解它们的用途边界,而不是把它们直接当作生产级密码系统。