public static class MaskUtils {
private final static int PHONE_MASK_LEN = 4;
/**
* 手机号中间4位遮蔽
* @param strVal 手机号 13800001111
* @return 138****1111
*/
public static String phoneMask(String strVal){
if(StringUtils.isEmpty(strVal)){
return "";
}
StringBuilder sb = new StringBuilder(strVal);
if (sb.length() > PHONE_MASK_LEN) {
int start = (sb.length() - PHONE_MASK_LEN)/ 2;
sb.replace(start, start + PHONE_MASK_LEN, getMaskStr(PHONE_MASK_LEN));
}
return sb.toString();
}
private static final int CARD_NO_MASK_LEN = 3;
/**
* 证件号遮蔽 只显示前3位 和 后3位 如:123456789
* @param cardNo 证件号
* @return 遮蔽后的证件号 如 123***789
*/
public static String cardNoMask(String cardNo){
if(StringUtils.isEmpty(cardNo)){
return "";
}
StringBuilder sb = new StringBuilder(cardNo);
//只展示前3位 和 后3位 所以长度要大于6
if(sb.length() > CARD_NO_MASK_LEN * 2){
int start = CARD_NO_MASK_LEN;
int end = sb.length() - CARD_NO_MASK_LEN;
int len = end - start;
sb.replace(start, end, getMaskStr(len));
}
return sb.toString();
}
/**
* 姓名倒数第二个遮蔽
* @param strVal 姓名 如李白:*白 微诺亚 : 微*亚
* @return 遮蔽后的姓名
*/
public static String nameMask(String strVal){
if(StringUtils.isEmpty(strVal)){
return "";
}
StringBuilder sb = new StringBuilder(strVal);
if (sb.length() > 1) {
int start = sb.length() - 2;
sb.replace(start, start + 1, getMaskStr(1));
}
return sb.toString();
}
private static final String MASK_STR = "*";
private static String getMaskStr(int len) {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < len; i++) {
sb.append(MASK_STR);
}
return sb.toString();
}
}
遮蔽工具类
最新推荐文章于 2024-10-18 13:02:57 发布