import org.apache.commons.lang3.StringUtils;
/**
* <p>
* ClassName: DesensitizationUtils
* </p>
* <p>
* Description: 客户信息脱敏处理工具类
* </p>
* <p>
* author: yu
* <p>
* date: 2022年8月19日
* </p>
*/
public class DesensitizationUtils {
/**
* <p>
* Description: 姓名脱敏处理
* </p>
*
* @param fullName 姓名
* @return 处理结果
*/
public static String desensitizedName(String fullName) {
if (!StringUtils.isEmpty(fullName)) {
fullName = fullName.trim();
if (fullName.length() > 2 && fullName.length() < 10) {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < (fullName.length() - 2); i++) {
sb.append("*");
}
String left = StringUtils.left(fullName, 1);
String right = StringUtils.right(fullName, 1);
return left + sb.toString() + right;
} else if (fullName.length() >= 10) {
if (fullName.length() >= 10) {
return StringUtils.left(fullName, 5)
.concat(StringUtils
.removeStart(StringUtils.leftPad(StringUtils.right(fullName, fullName.length() - 8),
StringUtils.length(fullName), "*"), "***"));
}
} else {
String name = StringUtils.left(fullName, 1);
return StringUtils.rightPad(name, StringUtils.length(fullName), "*");
}
}
return fullName;
}
/**
* <p>
* Description: 手机号脱敏处理
* </p>
*
* @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;
}
/**
* <p>
* Description: 税号脱敏处理
* </p>
*
* @param taxNo税号
* @return 处理结果
*/
public static String desensitizedTaxNo(String taxNo) {
if (!StringUtils.isEmpty(taxNo)) {
if (taxNo.length() < 10) {
taxNo = taxNo.replaceAll("(\\w{2})\\w*(\\w{2})", "$1******$2");
}
if (taxNo.length() > 18) {
taxNo = taxNo.replaceAll("(\\w{4})\\w*(\\w{5})", "$1*********$2");
}
}
return taxNo;
}
/**
* <p>
* Description: 邮箱脱敏处理
* </p>
*
* @param email 邮箱
* @return 处理结果
*/
public static String desensitizedEmail(String email) {
if (!StringUtils.isEmpty(email)) {
email = email.replaceAll("(^\\w)[^@]*(@.*$)", "$1****$2");
}
return email;
}
/**
* <p>
* Description: 身份证号脱敏处理
* </p>
*
* @param phoneNumber 身份证号
* @return 处理结果
*/
public static String desensitizedIdNumber(String idNumber) {
if (!StringUtils.isEmpty(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;
}
/**
* <p>
* Description: 联系地址脱敏处理
* </p>
*
* @param address 联系地址
* @return 处理结果
*/
public static String desensitizedAddress(String address) {
if (!StringUtils.isEmpty(address)) {
return StringUtils.left(address, 3).concat(StringUtils.removeStart(StringUtils.leftPad(
StringUtils.right(address, address.length() - 11), StringUtils.length(address), "*"), "***"));
}
return address;
}
}
关键信息脱敏
于 2022-08-19 15:34:48 首次发布