3种常见的数据脱敏方案
3种常见的数据脱敏方案
1、SQL 数据脱敏实现
MYSQL(电话号码,身份证)数据脱敏的实现
-- CONCAT()、LEFT()和RIGHT()字符串函数组合使用,请看下面具体实现 -- CONCAT(str1,str2,…):返回结果为连接参数产生的字符串 -- LEFT(str,len):返回从字符串str 开始的len 最左字符 -- RIGHT(str,len):从字符串str 开始,返回最右len 字符 -- 电话号码脱敏sql: SELECT mobilePhone AS 脱敏前电话号码,CONCAT(LEFT(mobilePhone,3), '********' ) AS 脱敏后电话号码 FROM t_s_user -- 身份证号码脱敏sql: SELECT idcard AS 未脱敏身份证, CONCAT(LEFT(idcard,3), '****' ,RIGHT(idcard,4)) AS 脱敏后身份证号 FROM t_s_user
2、JAVA数据脱敏实现
可参考:海强 / sensitive-plus
https://gitee.com/strong_sea/sensitive-plus
数据脱敏插件,目前支持地址脱敏、银行卡号脱敏、中文姓名脱敏、固话脱敏、身份证号脱敏、手机号脱敏
3、mybatis-mate-sensitive-jackson
mybatisplus 的新作,可以测试使用,生产需要收费。根据定义的策略类型,对数据进行脱敏,当然策略可以自定义。
# 目前已有 package mybatis.mate.strategy; public interface SensitiveType { String chineseName = "chineseName"; String idCard = "idCard"; String phone = "phone"; String mobile = "mobile"; String address = "address"; String email = "email"; String bankCard = "bankCard"; String password = "password"; String carNumber = "carNumber"; }