手機号脫敏:
11位手機号中間四位脫敏顯示,例如:187****1234
這樣處理有2中方法,a:substring來分割 b:正則驗證
public static void main(String[] args) {
String phone = "13123456789";
String phoneNumber = phone.substring(0, 3) + "****" + phone.substring(7, phone.length());
System.out.println("phone總長度:" + phone.length());
System.out.println("phone前3位:" + phone.substring(0, 3));
System.out.println("phone中4位:" + phone.substring(3, 7));
System.out.println("phone後4位:" + phone.substring(7, phone.length()));
System.out.println("phone中4*:" + phoneNumber);
}
public class DataMaskingUtils{
//比對規則
private static final String REGEX_OF_PHONE = "(^\\d{3})\\d.*(\\d{4}$)";
//替換規則
private static final String RRPLAGE_OF_PHONE = "$1****$2";
/**
* 手機号脫敏 153****8736
* @param phone
*/
public static Stirng phoneMasking(String phone){
if(!StringUtils.isEmpty(phone)){
return phone.replaceAll(REGEX_OF_PHONE, REPLACE_OF_PHONE);
}
return null;
}
}
身份證号脫敏
public class DataMaskingUtils{
//比對規則
private static final Stirng REGEX_OF_ID="(^\\d{3})\\d.*(\\d{4}$)";
//替換規則
private static final String REPLACE_OF_ID="$1********$2";
/**
* 身份證号脫敏 511********9768
* @param id 身份證号
*/
public static Stirng idMasking(String id){
if(!StringUtils.isEmpty(id)){
return id.replaceAll(REGEX_OF_ID, REPLACE_OF_ID);
}
return null;
}
}
郵箱賬号脫敏
public class DataMaskingUtils{
//比對規則
private static final String REGEX_OF_EMAIL="(^\\S)\\S.*(@)";
//替換規則
private static final String REPLACE_OF_EMAIL="$1***$2";
/**
* 郵箱賬号脫敏 k***@qq.com
* @param email 郵箱賬号
*/
public static Stirng emailMasking(String email){
if(!StringUtils.isEmpty(email)){
return email.replaceAll(REGEX_OF_EMAIL, REPLACE_OF_EMAIL);
}
return null;
}
}
銀行卡号脫敏
public class DataMaskingUtils{
//比對規則
private static final String REGEX_OF_CARD="(^\\d{4})\\d.*(\\d{3}$)";
//替換規則
private static final String REPLCACE_OF_CARD="$1********$2";
/**
* 銀行卡号脫敏 5647********928
* @param card 銀行卡号
*/
public static Stirng cardMasking(String card){
if(!StringUtils.isEmpty(card)){
return card.replaceAll(REGEX_OF_CARD, REPLCACE_OF_CARD);
}
return null;
}
}
姓名脫敏
public class DataMaskingUtils{
//比對規則
private static final String REGEX_OF_NAME="(^\\S\\S.*";
//替換規則
private static final String REPLACE_OF_NAME="$1**";
/**
* 姓名脫敏 趙**
* @param name 姓名
*/
public static Stirng nameMasking(String name){
if(!StringUtils.isEmpty(name)){
return name.replaceAll(REGEX_OF_NAME, REPLACE_OF_NAME);
}
return null;
}
}
姓名脫敏處理,規則:3個字以内脫敏第一個字,4—6個字脫敏前兩個字,大于6個字脫敏第3—6個字,示例:張三(*三)、張三水(*三水)、長孫無忌(**無忌)、羅斯托羅司機格(羅斯XXXX格)
function noPassByName(str){
if(null != str && str != undefined){
if(str.length <= 3){
return "*" + str.substring(1,str.length);
} else if(str.length > 3 && str.length <= 6){
return "**" + str.substring(2,str.length);
} else if(str.length > 6){
return str.substring(0,2) + "****" + str.substring(6,str.length)
}
} else {
return "";
}
}
微信号脫敏
public class DataMaskingUtils{
//比對規則
private static final String REGEX_OF_WECHAT="(^\\S\\S.*";
//替換規則
private static final String REPLACE_OF_WECHAT="$1***";
/**
* 微信賬号脫敏 k***
* @param weChat 微信賬号
*/
public static Stirng weChatMasking(String weChat){
if(!StringUtils.isEmpty(weChat)){
return weChat.replaceAll(REGEX_OF_WECHAT, REPLACE_OF_WECHAT);
}
return null;
}
}