1、身份证脱敏:显示后4位
public static String tmCardCode(String cardId) { if (null == cardId || cardId.length() < 4) { return cardId; } else { //显示后4位 String sfzRight = StringUtils.right(cardId, 4); sfzRight = StringUtils.leftPad(sfzRight, StringUtils.length(cardId), "*"); return sfzRight; } }
2、姓名脱敏:3个字及以下显示1个字,3个字以上显示2个字
public static String tmName(String name) { if (null == name || name.length() < 2) { return name; } String tmName = ""; if (name.length() > 3) { tmName = StringUtils.right(name, 2); } else { tmName = StringUtils.right(name, 1); } tmName = StringUtils.leftPad(tmName, StringUtils.length(name), "*"); return tmName; }
3、手机号码脱敏:显示前3后4
public static String tmPhone(String phone) { if (StringUtils.isEmpty(phone)) { return phone; } if (phone.length() >= 11) { return phone.replaceAll("(\\d{3})\\d*(\\d{4})", "$1****$2"); } else { return phone.replaceAll("(\\d{2})\\d*(\\d{2})", "$1**$2"); } }
4、地址脱敏:12字及以下显示6个字,12字以上显示不超过50%
public static String tmAddress(String address) { if (null == address || address.length() < 3) { return address; } String tmAddress = ""; if (address.length() >= 12) { tmAddress = StringUtils.left(address, 6); } else { tmAddress = StringUtils.left(address, address.length() / 2); } tmAddress = StringUtils.rightPad(tmAddress, StringUtils.length(address), "*"); return tmAddress; }
5、邮箱脱敏:显示“@”及以后的字符
public static String tmEmail(String email) { if (null == email || email.length() < 2) { return email; } int index = email.indexOf("@"); String tmEmail = ""; if (-1 == index) { return email; } else { tmEmail = StringUtils.right(email, email.length() - index); } tmEmail = StringUtils.leftPad(tmEmail, StringUtils.length(email), "*"); return tmEmail; }