加密函数:
AES_ENCRYPT('需要加密的字符串','秘钥');
select AES_ENCRYPT('给我狗子','abc123');
解密函数:
AES_DECRYPT('需要解密的密码','秘钥')
CREATE TABLE `TMP_AES_ENCRYPT` (`ID` bigint NOT NULL AUTO_INCREMENT,`NUM` VARBINARY(100),PRIMARY KEY (`ID`)) ENGINE=InnoDBDEFAULT CHARACTER SET=utf8;insert into TMP_AES_ENCRYPT(ID,NUM) values (3,AES_ENCRYPT('数据加密测试shujujiamiceshi数据加密测试shujujiamiceshi','abc123'));select AES_DECRYPT(NUM,'abc123') FROM TMP_AES_ENCRYPT;
需要加密的字段类型可以是VARBINARY,不能是varchar。
为了方便代码使用,将加密数据转为varchar类型存储:
alter table TMP_AES_ENCRYPT add column num1 varchar(200);insert into TMP_AES_ENCRYPT(ID,NUM1) values (4,hex(AES_ENCRYPT('数据加密测试shujujiamiceshi数据加密测试shujujiamiceshi','abc123')));select AES_DECRYPT(unhex(NUM1),'abc123') FROM TMP_AES_ENCRYPT;
使用 hex() 和 unhex()处理密码。
在使用hex()函数中发现的小技巧:
先转码:
select hex('给我狗子');
然后翻译:
select 0xE7BB99E68891E78B97E5AD90;
来源地址:https://blog.csdn.net/m0_55303915/article/details/129126341