前言:
我们经常遇到由于安全考虑,数据库中一些用户信息比如手机号、身份证号等信息加密保存,但又有一些需要查询匹配的操作,比如手机号模糊匹配的场景,此时就无法直接使用模糊查询了,就需要先进行解密后再执行模糊查询,本文提供了mysql常见的base64+AES加解密操作函数。
mysql加密函数操作如下:
- Base 64
# base64加密操作函数
to_base64('要加密的字段或内容')
# base64解密操作函数
from_base64('需要解密的密文')
- AES加解密
# AES加密操作函数
AES_ENCRYPT('要加密的字段或内容','秘钥')
# AES解密操作函数
AES_DECRYPT('需要解密的密文','秘钥')
- base64+AES组合加解密
# base64+AES组合加密操作函数
AES_ENCRYPT(to_base64('要加密的字段或内容'),'秘钥')
# base64+AES组合解密操作函数
AES_DECRYPT(from_base64('需要解密的密文'),'秘钥')
- 应用示例
-- 对数据库中加密保存的手机号进行模糊匹配
SELECT
AES_DECRYPT(from_base64(`user_mobile`), "ZPRSbC16SSNE535U") as user_mobile
FROM
user_send_record
WHERE
user_name = '18466666289'
AND
AES_DECRYPT(from_base64(`user_mobile`), "ZPRSbC16SSNE535U") like '%456%';