public class MaskUtils {
public static final String SENSITIVEINFORMATION_HIDDENSTR = "*";
private MaskUtils() {
}
public static String maskDebtor(String debtor) {
if (debtor == null || "".equals(debtor)) {
return debtor;
}
if (debtor.length() > 4) {
return mask(debtor, 2, 2, SENSITIVEINFORMATION_HIDDENSTR);
} else {
if (debtor.length() > 2) {
return mask(debtor, 1, 1, SENSITIVEINFORMATION_HIDDENSTR);
} else {
return mask(debtor, 1, 0, SENSITIVEINFORMATION_HIDDENSTR);
}
}
}
public static String maskMobile(String mobile) {
if (mobile == null || "".equals(mobile)) {
return mobile;
}
return mask(mobile, 3, 4, SENSITIVEINFORMATION_HIDDENSTR);
}
public static String maskIdCard(String idCard) {
if (idCard == null || "".equals(idCard)) {
return idCard;
}
return mask(idCard, 3, 4, SENSITIVEINFORMATION_HIDDENSTR);
}
public static String maskCompanyCode(String companyCode) {
if (companyCode == null || "".equals(companyCode)) {
return companyCode;
}
return mask(companyCode, 3, 4, SENSITIVEINFORMATION_HIDDENSTR);
}
public static String maskBankCardNo(String bankCardNo) {
if (bankCardNo == null || "".equals(bankCardNo)) {
return bankCardNo;
}
return mask(bankCardNo, 0, 4, SENSITIVEINFORMATION_HIDDENSTR);
}
public static String maskDebtorExceptFirst(String debtor) {
if (debtor == null || "".equals(debtor)) {
return debtor;
}
if (debtor.length() > 4) {
return mask(debtor, 2, 2, SENSITIVEINFORMATION_HIDDENSTR);
} else {
return mask(debtor, 1, 0, SENSITIVEINFORMATION_HIDDENSTR);
}
}
public static String mask(String source, int startDigit, int backwardDigit, String hiddenStr) {
if (source == null || (source.length() < (startDigit + backwardDigit))) {
return source;
}
StringBuilder result = new StringBuilder(source.length());
char[] chars = source.toCharArray();
for (int i = 0; i < source.length(); i++) {
if (i < startDigit) {
result.append(chars[i]);
} else if (i >= (chars.length - backwardDigit)) {
result.append(chars[i]);
} else {
result.append(hiddenStr);
}
}
return result.toString();
}