如何通过AES_ENCRYPT和AES_DECRYPT函数在MySQL中实现高效加解密操作?
- 内容介绍
- 文章标签
- 相关推荐
本文共计906个文字,预计阅读时间需要4分钟。
MySQL 自带的 `AES_ENCRYPT` 和 `AES_DECRYPT` 可以进行加密和解密,但它们不能用于安全存储——它们不自动加盐、不进行迭代、不管理密钥,全依赖你自己。不留意的话,安全风险很大。
为什么 AES_ENCRYPT 解出来的值总是 NULL
最常见原因是密钥长度不对或数据类型不匹配。MySQL 的 AES 实现严格遵循 NIST 标准,只接受 128/192/256 位密钥(即 16/24/32 字节的字符串),传入 16 个数字字符 '1234567890123456' 可以,但传 '12345678'(8 字节)就会静默失败,返回 NULL。
本文共计906个文字,预计阅读时间需要4分钟。
MySQL 自带的 `AES_ENCRYPT` 和 `AES_DECRYPT` 可以进行加密和解密,但它们不能用于安全存储——它们不自动加盐、不进行迭代、不管理密钥,全依赖你自己。不留意的话,安全风险很大。
为什么 AES_ENCRYPT 解出来的值总是 NULL
最常见原因是密钥长度不对或数据类型不匹配。MySQL 的 AES 实现严格遵循 NIST 标准,只接受 128/192/256 位密钥(即 16/24/32 字节的字符串),传入 16 个数字字符 '1234567890123456' 可以,但传 '12345678'(8 字节)就会静默失败,返回 NULL。

