ase加密后base64编码

为了应对王安的要求 数据库不能存储明文密码

mysql 版本

mysql> SELECT VERSION();
+------------+
| VERSION()  |
+------------+
| 5.7.33-log |
+------------+
1 row in set (0.11 sec)

使用 ase-128加密

AES_ENCRYPT(`password`,'1234567890123412')

ase64编码一下

  • 原因: ase 加密 后二进制 会乱码 因此必须base64一下
TO_BASE64 (AES_ENCRYPT(`password`,'1234567890123412') )

可以批量更新数据库

update emergency_meeting_device set `password` = TO_BASE64 (AES_ENCRYPT(`password`,'1234567890123412') )

base64解码

from_base64(password)

解密

AES_DECRYPT(from_base64(password),'1234567890123412') 
批量还原数据表原始数据
update emergency_meeting_device set `password` = AES_DECRYPT(from_base64(password),'1234567890123412')

可以明文查询

SELECT
	AES_DECRYPT( from_base64 ( PASSWORD ), '1234567890123412' ) 
FROM
	emergency_meeting_device 
WHERE
	PASSWORD = to_base64 (
	AES_ENCRYPT( '22', '1234567890123412' ));

根据密文查询

SELECT
	AES_DECRYPT( from_base64 ( PASSWORD ), '1234567890123412' ) 
FROM
	emergency_meeting_device 
WHERE
	PASSWORD = 'tNBfa9ZI41zx7QieZ0FWRg==';
	
posted @ 2022-08-03 10:45  vx_guanchaoguo0  阅读(129)  评论(0编辑  收藏  举报