作者:cndz 围观群众:1117 更新于 标签:数据脱敏java常用工具类java 数据脱敏
数据脱敏(Data Desensitization)是一种数据安全保护技术,旨在保护敏感数据的隐私和安全性。通过对敏感数据进行修改、隐藏或替换等方式,将其转化为无法识别个人身份或敏感信息的形式,以减少数据泄露和滥用的风险。
package common.utils;
/**
* @author zzy
* @date 2023/9/26 14:24
*/
public class DataDesensitizationUtil {
// 手机号脱敏
public static String desensitizePhoneNumber(String phoneNumber) {
if (phoneNumber == null || phoneNumber.length() != 11) {
return phoneNumber;
}
return phoneNumber.replaceAll("(\\d{3})\\d{4}(\\d{4})", "$1****$2");
}
// 电话号脱敏
public static String desensitizeTelephoneNumber(String telephoneNumber) {
if (telephoneNumber == null || telephoneNumber.length() < 7) {
return telephoneNumber;
}
return telephoneNumber.replaceAll("(\\d{3})\\d{4}(\\d*)", "$1****$2");
}
// 身份证号脱敏
public static String desensitizeIdNumber(String idNumber) {
if (idNumber == null || (idNumber.length() != 15 && idNumber.length() != 18)) {
return idNumber;
}
return idNumber.replaceAll("(\\d{3})\\d+(\\w{4})", "$1*******$2");
}
// 姓名脱敏
public static String desensitizeName(String name) {
if (name == null || name.length() <= 1) {
return name;
}
char[] nameChars = name.toCharArray();
if(name.length() == 2){
return nameChars[0] + "*";
}
for (int i = 1; i < nameChars.length - 1; i++) {
nameChars[i] = '*';
}
return new String(nameChars);
}
public static void main(String[] args) {
System.out.println(desensitizePhoneNumber("13343037186"));
System.out.println(desensitizeTelephoneNumber("7725590"));
System.out.println(desensitizeIdNumber("130827199707140415"));
System.out.println(desensitizeName("张"));
System.out.println(desensitizeName("张三"));
System.out.println(desensitizeName("张张峰"));
}
}
使用该工具类,您可以对手机号、电话号、身份证号和姓名等敏感数据进行脱敏处理。请注意,上述代码只提供了一种简单的脱敏方式,您可以根据实际需求进行相应的修改和扩展。同时,数据脱敏需要遵守相关法律法规和隐私保护要求,务必慎重处理敏感数据。