一、概念
脱敏是指对某些敏感信息通过脱敏规则进行数据的变形,实现敏感隐私数据的可靠保护。例如客户的身份证号、手机号、银行卡等这些都属于客户的隐私信息,都需要对这些数据进行脱敏操作,防止泄漏。
二、实现
实现的方法有很多,可以通过替换、删除、加密、模糊化等方法对敏感信息进行脱敏。比如说手机号 12345678910 将其敏感信息替换为* ,变为 1234****910。有很多方法通过自定义规则进行脱敏,但是加密后如果需要对其进行查询等操作,比如模糊查询、精准查询等,下面介绍一种MySQL自带的函数进行数据加密、解密,从而实现数据脱敏,而且支持模糊查询等操作。
1、 AES_ENCRYPT(str,key_str)。加密,key_str为密钥。
SELECT hex(AES_ENCRYPT('123456','zx'))
2、 AES_DECRYPT(crypt_str,key_str)。解密,key_str为密钥。
SELECT AES_DECRYPT(UNHEX('2FEFB1FDECA6A121B02A7ACCBDDE8F86'),'zx')
3、模糊查询、精准查询
SELECT * from t_user where AES_DECRYPT(UNHEX(phone),'zx') like '123%'
SELECT * from t_user where AES_DECRYPT(UNHEX(phone),'zx') = '123456'