Mysql加密解密

Mysql加密解密

https://dev.mysql.com/doc/refman/5.7/en/encryption-functions.html#function_aes-encrypt

函数定义

AES_ENCRYPT(str,key)

返回用密钥key对字符串str利用高级加密标准算法加密后的结果,调用AES_ENCRYPT的结果是一个二进制字符串,使用 VARBINARY or BLOB 存储

AES_DECRYPT(str,key)

返回用密钥key对字符串str利用高级加密标准算法解密后的结果

常用法

mysql> SELECT HEX(AES_ENCRYPT('test','key')) ;
+----------------------------------+
| HEX(AES_ENCRYPT('test','key'))   |
+----------------------------------+
| 9E9CE44CD9DF2B201F51947E03BCCBE2 |
+----------------------------------+

mysql> SELECT AES_DECRYPT(UNHEX('9E9CE44CD9DF2B201F51947E03BCCBE2'),'key');
+--------------------------------------------------------------+
| AES_DECRYPT(UNHEX('9E9CE44CD9DF2B201F51947E03BCCBE2'),'key') |
+--------------------------------------------------------------+
| test                                                         |
+--------------------------------------------------------------+

mysql> SELECT to_base64(AES_ENCRYPT('test','key')) ;
+--------------------------------------+
| to_base64(AES_ENCRYPT('test','key')) |
+--------------------------------------+
| npzkTNnfKyAfUZR+A7zL4g==             |
+--------------------------------------+

mysql> SELECT AES_DECRYPT(from_base64('npzkTNnfKyAfUZR+A7zL4g=='),'key');
+------------------------------------------------------------+
| AES_DECRYPT(from_base64('npzkTNnfKyAfUZR+A7zL4g=='),'key') |
+------------------------------------------------------------+
| test                                                       |
+------------------------------------------------------------+

使用案例

注意字段宽度

create table aes_info(id int primary key, no varchar(8), pw varchar(255));

insert into aes_info values (1,'00050001',HEX(AES_ENCRYPT('test','key')));

select * from aes_info;
+----+----------+----------------------------------+
| id | no       | pw                               |
+----+----------+----------------------------------+
|  1 | 00050001 | 9E9CE44CD9DF2B201F51947E03BCCBE2 |
+----+----------+----------------------------------+

select id,no,AES_DECRYPT(UNHEX(pw),'key') from aes_info;
+----+----------+------------------------------+
| id | no       | AES_DECRYPT(UNHEX(pw),'key') |
+----+----------+------------------------------+
|  1 | 00050001 | test                         |
+----+----------+------------------------------+
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

高铭杰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值