You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在MySQL中正确解密AES加密且BASE64编码存储的值

解密失败原因

AES_DECRYPT 函数执行后返回的是二进制字节流,直接查询不会自动转为人类可读的字符串,看起来就像解密失败。

正确解密语句

你可以任选以下一种写法实现正常解密:

  • 使用CAST函数做类型转换
SELECT CAST(AES_DECRYPT(FROM_BASE64(randomname), 'ENCRYPTIONKEY') AS CHAR CHARSET utf8mb4) AS decrypted_name FROM user;
  • 使用CONVERT函数做字符集转换
SELECT CONVERT(AES_DECRYPT(FROM_BASE64(randomname), 'ENCRYPTIONKEY') USING utf8mb4) AS decrypted_name FROM user;

额外注意事项

  • 加密和解密时使用的密钥ENCRYPTIONKEY必须完全一致,大小写、空格、特殊字符都不能有差异
  • 转换字符集时如果你的明文使用的是其他字符集,把语句中的utf8mb4替换为对应字符集即可,通用场景下utf8mb4兼容性最好
  • 你当前表中的randomname字段类型为varchar(64),足够存储短文本加密后Base64编码的结果,无需调整字段结构

内容的提问来源于stack exchange,提问作者Harshit Vijayvargia

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 14:09:05