2021-06-01

Java处理关键字进行脱敏操作

1、通过表头获取需要处理的下标列

注:此处导出表格时对关键字进行脱敏处理

 /**  * .  * 对表头进行过滤判断  *  * @param headers 表头  * @return 对应的下标列及方法名  */ public static Map<String, String> headsFilter(String[] headers) {  Map<String, String> indexItem = new HashMap<>();  int index = 0;//具体下标  for (String word : headers) {   if (word.matches("((?=.*证号)|(?=.*身份证)|(?=.*护照号码)|(?=.*客户号)|(?=.*证件号码))^.*$")) {    indexItem.put(String.valueOf(index), "maskIdCard");   } else if (word.matches("((?=.*账户)|(?=.*卡号)|(?=.*银行卡卡号))^.*$")) {    indexItem.put(String.valueOf(index), "bankCard");   } else if (word.matches("((?=.*址)|(?=.*地址))^.*$")) {    indexItem.put(String.valueOf(index), "address");   } else if (word.matches("((?=.*手机号)|(?=.*主叫号码)|(?=.*被叫号码))^.*$")) {    indexItem.put(String.valueOf(index), "maskPhone");   } else if (word.matches("(?=.*姓名).*$")) {    indexItem.put(String.valueOf(index), "chineseName");   } else if (word.matches("(?=.*固定电话).*$")) {    indexItem.put(String.valueOf(index), "fixedPhone");   } else if (word.matches("(?=.*邮箱).*$")) {    indexItem.put(String.valueOf(index), "email");   }   index++;  }  return indexItem; }  

2、脱敏字段具体处理

  /**  * .  * 字段信息脱敏处理  *  * @param objStr  原始字段  * @param methodName 过滤具体方法  * @return 返回已脱敏字段  */ public static String filtration(Object objStr, String methodName) {  String newStr = "";  String oldStr = String.valueOf(objStr);  if (StringUtils.isBlank(oldStr)) {   return oldStr;  }  try {   switch (methodName) {    case "bankCard": //银行卡号     newStr = oldStr.replaceAll("(\\w{4})\\w*(\\w{4})", "$1***********$2");     break;    case "fixedPhone"://固定电话     newStr = oldStr.substring(0, (oldStr.indexOf('-') + 1)) + "******" + oldStr.substring(oldStr.length() - 2);     break;    case "address": //住址数字     newStr = oldStr.replaceAll("[\\d一二三四五六七八九十壹贰叁肆伍陆柒捌玖拾佰]+", "***");     break;    case "chineseName": //中文姓名     String name = StringUtils.left(oldStr, 1);     newStr = StringUtils.rightPad(name, StringUtils.length(oldStr), "*");     break;    case "email": //邮箱     int index = oldStr.indexOf('@');     if (index == 2) {//下标为2:@前面数字小于两位完全拼接显示      newStr = oldStr.substring(0, index) + "****" + oldStr.substring(index, oldStr.length());     } else {      newStr = oldStr.replaceAll("(^\\w{3})[^@]*(@.*$)", "$1****$2");     }     break;    case "maskIdCard": //证件号     if (oldStr.length() == 15) {      newStr = oldStr.replaceAll("(\\w{3})\\w*(\\w{2})", "$1**********$2");     } else if (oldStr.length() == 18) {      newStr = oldStr.replaceAll("(\\w{3})\\w*(\\w{2})", "$1*************$2");     }     break;    case "maskPhone": //手机号     if (oldStr.matches("^(852|853)\\d*$")) {//港澳手机号处理      newStr = oldStr.substring(3, 5) + "****" + oldStr.substring((oldStr.length() - 2));     } else if (oldStr.matches("^(886)\\d*$")) {//台湾手机号处理 //8860930849111      newStr = oldStr.substring(3, 5) + "****" + oldStr.substring((oldStr.length() - 3));     } else {      newStr = oldStr.replaceAll("(\\w{3})\\w*(\\w{4})", "$1****$2");     }     break;    default:     logger.error("方法未定义,字段脱敏失败");   }  } catch (Exception e) {   logger.error(String.format("处理导出字段脱敏异常[Error=%s]...", e.getMessage()));  }  return newStr; }

3、字段脱敏后效果

"客户姓名"  "IP地址"      "客户微信名"  "手机号"   "银行卡号"     "身份证号"        "固定电话"    "电子邮箱"     "家庭住址" "刘*****"  "***.***.***.***" "孤鸿寡鹄3333" "156****9452" "6222***********1975" "513*************96"  "021-******18"  "250****@qq.com"  "上海市徐汇区***栋***楼***室"                    

 









原文转载:http://www.shaoqun.com/a/775060.html

跨境电商:https://www.ikjzd.com/

打折网站:https://www.ikjzd.com/w/74

1号店网:https://www.ikjzd.com/w/2263


1、通过表头获取需要处理的下标列注:此处导出表格时对关键字进行脱敏处理/***.*对表头进行过滤判断**@paramheaders表头*@return对应的下标列及方法名*/publicstaticMap<String,String>headsFilter(String[]headers){Map<String,String>indexItem=newHashMap<
白色清关:https://www.ikjzd.com/w/1410
《小夫妻时代》华丽收官 张衣成"幸福标杆":http://yl.shaoqun.com/m/a/17554.html
口述:帅男邀我上床后顺走了我的iPhone4S:http://lady.shaoqun.com/m/a/13457.html
亚马逊应用商店:https://www.ikjzd.com/w/531
慧聪商务网:https://www.ikjzd.com/w/1836
口述:老公说出轨就是为了多生孩子:http://lady.shaoqun.com/m/a/19715.html
避雷:亚马逊"Request a Review"按钮正确使用解答:https://www.ikjzd.com/articles/145252
汇率有救了!中国央行正试图抑制货币汇率的飙升:https://www.ikjzd.com/articles/145257
带你认识cpc认证:https://www.ikjzd.com/articles/145253

No comments:

Post a Comment