• 个人信息 手机号、身份证 姓名脱敏加密打码替换*


    //个人信息 手机号或证件号打码
      private String getEncrypt(String number){
        //电话
        if (number != null && number.length() == 11) {
          return number.replaceAll("(\d{3})\d{4}(\d{4})", "$1****$2");
        }
        //身份证号码
        if (number != null && number.length() == 18) {
          return number.replaceAll("(\d{4})\d{12}(\w{2})","$1************$2");
        } else if(number != null && number.length() == 15){
          return number.replaceAll("(\d{4})\d{9}(\w{2})","$1*********$2");
        }else{
          return number;
        }
      }
    
    
    
    
    
    
    //名字打码
    private String getEncryptName(String name){
        String regex = "[\u4E00-\u9FA5]{2,30}(?:·[\u4E00-\u9FA5]{2,5})*";
        Pattern p = Pattern.compile(regex);
        Matcher m = p.matcher(name);
        boolean isMatch = m.matches();
        StringBuilder sb = new StringBuilder();
        String names="";
        if (isMatch) {//说明是中文姓名
          if (name.contains("·")) {
            String[] strNames = name.split("·");
            for (int i = 0; i < strNames.length-1; i++) {
              if (i!=strNames.length) {
                names = strNames[i].replaceAll("[\u4e00-\u9fa5]", "*");
              }
              sb.append(names).append("·");
            }
            return sb.append(strNames[strNames.length-1]).toString();
          } else {
            String[] strNames = name.split("");
            sb.append(strNames[1]);
            for (int i = 2; i < strNames.length; i++) {
              names = strNames[i].replaceAll("[\u4e00-\u9fa5]", "*");
              sb.append(names);
            }
            return sb.toString();
          }
        } else {//说明是英文
          if (name.contains(" ")) {
            String[] strNames = name.split(" ");
            for (int i = 0; i < strNames.length-1; i++) {
              if (i!=strNames.length) {
                names = strNames[i].replaceAll("^[A-Za-z]+$", "*");
              }
              sb.append(names).append(" ");
            }
            return sb.append(strNames[strNames.length-1]).toString();
          }
        }
        return name;
      }
  • 相关阅读:
    python面试题之生成器迭代器
    python之初识函数二
    Python之初识函数一
    Python初识之文件操作
    python初识三
    python初识二
    python初识一
    2.15.5.menuconfig的使用和演示
    2.15.4.内核的配置原理1
    2.15.3.内核配置和编译体验
  • 原文地址:https://www.cnblogs.com/pan-my/p/13806904.html
Copyright © 2020-2023  润新知