Java 敏感信息处理算法:证件号和手机号脱敏
以下是一个简单的Java算法,用于对证件号和手机号进行敏感信息处理:
import java.util.regex.Pattern;
public class SensitiveInfoAlgorithm {
// 证件号码正则表达式
private static final String ID_CARD_REGEX = "(\d{15})|(\d{17}[a-zA-Z0-9])";
// 手机号码正则表达式
private static final String MOBILE_REGEX = "1\d{10}";
/**
* 对证件号进行敏感信息处理
* @param idCard 证件号
* @return 处理后的证件号
*/
public static String handleIdCard(String idCard) {
if (idCard == null || idCard.isEmpty()) {
return null;
}
// 隐藏证件号中间部分
return idCard.replaceAll("(?<=\w{3})\w(?=\w{4})", "*");
}
/**
* 对手机号进行敏感信息处理
* @param mobile 手机号
* @return 处理后的手机号
*/
public static String handleMobile(String mobile) {
if (mobile == null || mobile.isEmpty()) {
return null;
}
// 隐藏手机号中间部分
return mobile.replaceAll("(?<=\d{3})\d(?=\d{4})", "*");
}
/**
* 判断是否为合法的证件号
* @param idCard 证件号
* @return 是否合法
*/
public static boolean isValidIdCard(String idCard) {
if (idCard == null || idCard.isEmpty()) {
return false;
}
return Pattern.matches(ID_CARD_REGEX, idCard);
}
/**
* 判断是否为合法的手机号
* @param mobile 手机号
* @return 是否合法
*/
public static boolean isValidMobile(String mobile) {
if (mobile == null || mobile.isEmpty()) {
return false;
}
return Pattern.matches(MOBILE_REGEX, mobile);
}
}
这个算法包含四个方法:
handleIdCard:对证件号进行敏感信息处理,将证件号中间部分替换为'*',例如将'110101199001011234'处理为'110***********1234'。handleMobile:对手机号进行敏感信息处理,将手机号中间部分替换为'',例如将'13812345678'处理为'138***5678'。isValidIdCard:判断是否为合法的证件号,使用正则表达式进行验证。isValidMobile:判断是否为合法的手机号,使用正则表达式进行验证。
这个算法使用Java正则表达式进行匹配和替换,比较简单。需要注意的是,这个算法只是一个简单的示例,实际应用中可能需要更复杂的处理逻辑。
原文地址: https://www.cveoy.top/t/topic/mDLC 著作权归作者所有。请勿转载和采集!