代码拉取完成,页面将自动刷新
同步操作将从 海强/sensitive-plus 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
数据脱敏插件,目前支持地址脱敏、银行卡号脱敏、中文姓名脱敏、固话脱敏、身份证号脱敏、手机号脱敏、密码脱敏 一个是正则脱敏、另外一个根据显示长度脱敏,默认是正则脱敏,可以根据自己的需要配置自己的规则
具体使用请参考单元测试下的
com.yhq.sensitive.UserEntity
com.yhq.sensitive.SensitiveTests.test
注解名称 | 作用描述 |
---|---|
@SensitiveAddress | 地址脱敏 |
@SensitiveBankCard | 银行卡脱敏 |
@SensitiveChineseName | 中文姓名脱敏 |
@SensitiveFixedPhone | 固话脱敏 |
@SensitiveIdCard | 身份证脱敏 |
@SensitiveMobile | 手机号码脱敏 |
@SensitivePassword | 密码脱敏 |
注解名称 | 作用描述 |
---|---|
@SensitiveInfo(strategy = SensitiveAddress.class) | 地址脱敏 |
@SensitiveInfo(strategy = SensitiveBankCard.class) | 银行卡脱敏 |
@SensitiveInfo(strategy = SensitiveChineseName.class) | 中文姓名脱敏 |
@SensitiveInfo(strategy = SensitiveFixedPhone.class) | 固话脱敏 |
@SensitiveInfo(strategy = SensitiveIdCard.class) | 身份证脱敏 |
@SensitiveInfo(strategy = SensitiveMobile.class) | 手机号码脱敏 |
@SensitiveInfo(strategy = SensitivePassword.class) | 密码脱敏 |
如11位的手机号,默认脱敏策略是 显示前三后四,如 183****1309
,自定义策略后
@SensitiveInfo(strategy = SensitiveMobile.class,begin = 4,end = 3)
显示结果为 1837****309
银行卡号自定义脱敏,例如
@SensitiveInfo(pattern = "(?<=\\w{6})\\w(?=\\w{4})",replaceChar = "*")
user 为实体对象
log.info(JsonMapper.nonNullMapper().toJson(userEntity));
整体测试结果如下
{
"userNamePattern":"张**",
"userNameLength":"张**",
"passwordPattern":"************",
"passwordLength":"******",
"idCardPattern":"**************6789",
"idCardLength":"********6789",
"fixedPhonePattern":"********4321",
"fixedPhoneLength":"********4321",
"mobilePattern":"156****0987",
"mobileLength":"156****0987",
"addressPattern":"北京市东城*****戴斯酒店",
"addressLength":"北京市东城区东华门街道北京******",
"emailPattern":"23***@qq.com",
"emailLength":"2****@qq.com",
"bankCardPattern":"6212***********2455",
"bankCardCustomizePattern":"621226*********2455",
"bankCardLength":"621226*********2455"
}
读取敏感词库 com.yhq.sensitive.util.SensitiveWordInit 敏感词工具类 com.yhq.sensitive.util.SensitiveWordFilter
由于一些词汇违规,所以以拼音代替,请自行脑补
方法 | 作用描述 |
---|---|
boolean isContainSensitiveWord(String txt,int matchType) | 判断是否存在敏感词 |
Set getSensitiveWord(String txt , int matchType) | 获取敏感词 |
replaceSensitiveWord(String txt,int matchType,String replaceChar) | 敏感词替代 |
单元测试类
com.yhq.sensitive.SensitiveWordFilterTest.test
测试结果如下
17:02:43.507 [main] INFO com.yhq.sensitive.SensitiveWordFilterTest - 敏感词的数量:893
17:02:43.511 [main] INFO com.yhq.sensitive.SensitiveWordFilterTest - 待检测语句字数:184
17:02:43.511 [main] INFO com.yhq.sensitive.SensitiveWordFilterTest - 语句中包含敏感词的个数为:3个
17:02:43.511 [main] INFO com.yhq.sensitive.SensitiveWordFilterTest - 总共消耗时间为:18
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。