【项目】对身份证、手机号码、银行卡信息进行脱敏处理

数据库保留脱敏后的数据,通过工具类隐藏敏感信息

通过截取字符串的方式

数据库保留不脱敏数据,对返回给前端结果进行脱敏处理

对查询的结果进行脱敏处理

通过sql数据脱敏

mysql官方文档,使用内置函数进行脱敏处理

  • CONCAT()、LEFT()和RIGHT()字符串函数组合使用
    • CONCAT(str, str, str…):返回连接的字符串(其中不能未null,否则返回结果就null)
    • LEFT(str, len):返回指定的最左边的字符数(str:字符串,len:长度)
    • RIGHT(str, len):返回指定的最右边的字符数
# 身份证:年月日脱敏,前6后4不脱敏 350122 20000201 1535
select concat(left(身份证号码,6),'********', right(身份证号码,4)) as idcard from 表名
  • INSERT(str, pos, len, newstr)函数:在指定位置插入子字符串,最多指定字符数
    • str
    • pos: 起始位置 如果pos不在字符串的长度内,则返回原始字符串 pos如果 len不在字符串其余部分的长度内,则从位置替换字符串的其余部分
    • len:长度
    • newstr :替换的字符串
# 手机号:前三后四不脱敏,中间脱敏 156 2351 1365
select insert(phone, 4, 4, '****') as phone from 表名

通过Java工具类进行脱敏

hutool 中有个信息脱敏工具,在此就不做描述,举例说明
文档地址

Guess you like

Origin blog.csdn.net/weixin_45511500/article/details/121870829