public static void main(String[] args) {
// String content = "安徽省xx市高新区xx路XXXX号XX公馆58栋1108室";
// String regex = "^(.{3})(.{8})(.*)$";
// //从第4位开始,遮掩8位
// String replacement = "$1********$3";
// //脱敏
// String content2 = desensitize(content, regex, replacement);
// System.out.println("content2="+ content2);
//【姓名】
// String content = "小浣熊";
// String regex = "^(.{1})(.*)$";
// //第1位遮掩
// String replacement = "*$2";
// //脱敏
// String content2 = desensitize(content, regex, replacement);
// System.out.println("content2="+ content2);
//【手机号码】
// String content = "18755556999";
// String regex = "^(.{3})(.{4})(.*)$";
// //中间4位遮掩
// String replacement = "$1****$3";
// //脱敏
// String content2 = desensitize(content, regex, replacement);
// System.out.println("content2="+ content2);
//【身份证号码】
String content = "340888xxxxxxxx0212";
String regex = "^(.{1})(.*)(.{1})$";
//前1后1保留,中间16位遮掩
String replacement = "$1****************$3";
//脱敏
String content2 = desensitize(content, regex, replacement);
System.out.println("content2="+ content2);
}
/**
* 脱敏
*
* @param str 源字符串
* @param regex 正则表达式,示例: ^(.{3})(.{11})(.*)$
* @param replacement 脱敏后,示例: $1***********$3
* @return
*/
public static String desensitize(String str, String regex, String replacement) {
return str.replaceAll(regex, replacement);
}
字符串脱敏处理demo
于 2022-10-27 14:56:23 首次发布