package org.springblade.common.utils; import com.google.common.base.Strings; import org.apache.commons.lang3.StringUtils; import java.util.HashMap; import java.util.Map; import java.util.regex.Matcher; import java.util.regex.Pattern; /** * 铭感信息处理 * @author zhongrj * @since 2022-04-27 */ public class DesensitizedUtil { /** * 姓名脱敏处理 * @param fullName * @return */ public static String desensitizedName(String fullName){ if (!Strings.isNullOrEmpty(fullName)) { String name = StringUtils.left(fullName, 1); return StringUtils.rightPad(name, StringUtils.length(fullName), "*"); } return fullName; } /** * 手机号脱敏处理 * @param phoneNumber * @return */ public static String desensitizedPhoneNumber(String phoneNumber){ if(StringUtils.isNotEmpty(phoneNumber)){ phoneNumber = phoneNumber.replaceAll("(\\w{3})\\w*(\\w{4})", "$1****$2"); } return phoneNumber; } /** * 身份证号码脱敏处理 * @param idNumber * @return */ public static String desensitizedIdNumber(String idNumber){ if (!Strings.isNullOrEmpty(idNumber)) { if (idNumber.length() == 15){ idNumber = idNumber.replaceAll("(\\w{6})\\w*(\\w{3})", "$1******$2"); } if (idNumber.length() == 18){ idNumber = idNumber.replaceAll("(\\w{6})\\w*(\\w{3})", "$1*********$2"); } } return idNumber; } /** * 保安证编号 * @param securityNumber * @return */ public static String desensitizedSecurityNumber(String securityNumber){ if (!Strings.isNullOrEmpty(securityNumber)) { //分割 String s = securityNumber.substring(0, securityNumber.length() - 4); String s2 = s.replaceAll("\\D", "*"); //替换数字 Pattern p = Pattern.compile("[\\d]"); Matcher matcher = p.matcher(s2); String s3 = matcher.replaceAll("*"); //保留后4位 String s1 = securityNumber.substring(securityNumber.length() - 4); securityNumber = s3 + s1; } return securityNumber; } /** * 身份证号码脱敏处理(只保留后4位) * @param idNumber * @return */ public static String desensitizedIdNumberBy4(String idNumber){ if (!Strings.isNullOrEmpty(idNumber)) { if (idNumber.length() == 15){ idNumber = idNumber.replaceAll("\\w*(\\w{4})", "***********$1"); } if (idNumber.length() == 18){ idNumber = idNumber.replaceAll("\\w*(\\w{4})", "**************$1"); } } return idNumber; } /** * 地址 * @param address * @return */ public static String desensitizedAddress(String address){ if (!Strings.isNullOrEmpty(address)) { return StringUtils.left(address, 3).concat(StringUtils.removeStart(StringUtils.leftPad(StringUtils.right(address, address.length()-11), StringUtils.length(address), "*"), "***")); } return address; } public static void main(String[] args) { desensitizedIdNumberBy4("360728199205280059"); desensitizedSecurityNumber("赣洪202100124"); Map map = new HashMap<>(1); String a = "sdafa-445sdaf-fsafdsaf"; map.put(a,"abc"); System.out.println("map = " + map); Object o = map.get(a); System.out.println("o = " + o); } }