手機號脫敏:
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; } }