手机号脱敏:
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;
}
}