Java地址脱敏隐藏中间信息
时间: 2023-07-25 10:09:09 浏览: 299
Java地址脱敏可以使用正则表达式来实现,将地址中的敏感信息替换为星号或其他符号。以下是一种可能的实现方式:
```java
public static String desensitizeAddress(String address) {
String regex = "(?<=\\w{3})\\w(?=\\w{4})"; //匹配除前三位和后四位之外的字符
return address.replaceAll(regex, "*");
}
```
这个正则表达式 `(?<=\w{3})\w(?=\w{4})` 匹配了除地址开头的三个字符和结尾的四个字符之外的字符,然后将其替换为星号。可以使用以下代码测试:
```java
String address = "北京市朝阳区建国路123号";
String desensitizedAddress = desensitizeAddress(address);
System.out.println(desensitizedAddress); //输出:北京市***1234
```
需要注意的是,这种方法只适用于固定格式的地址,如果地址格式不规范或者缺失某些信息,则可能会替换掉错误的信息。
相关问题
java 身份证脱敏
Java身份证脱敏是指对身份证号码进行部分隐藏或替换,以保护个人隐私信息的安全。在Java中,可以通过以下方式进行身份证脱敏:
1. 隐藏部分数字:可以使用字符串的substring方法,将身份证号码的前几位和后几位保留,中间的数字用"*"或其他字符替代。
```java
String idCard = "440102199001011234";
String maskedIdCard = idCard.substring(0, 6) + "********" + idCard.substring(14);
System.out.println(maskedIdCard); // 输出:440102********1234
```
2. 加密处理:可以使用加密算法对身份证号码进行加密,然后存储或传输加密后的值。常见的加密算法有MD5、SHA等。
```java
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
public class IdCardMasking {
public static String encryptIdCard(String idCard) {
try {
MessageDigest md = MessageDigest.getInstance("MD5");
byte[] idCardBytes = idCard.getBytes();
byte[] encryptedBytes = md.digest(idCardBytes);
StringBuilder sb = new StringBuilder();
for (byte b : encryptedBytes) {
sb.append(String.format("%02x", b));
}
return sb.toString();
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
return null;
}
public static void main(String[] args) {
String idCard = "440102199001011234";
String encryptedIdCard = encryptIdCard(idCard);
System.out.println(encryptedIdCard); // 输出:d8e8fca2dc0f896fd7cb4cb0031ba249
}
}
```
3. 自定义脱敏规则:根据实际需求,可以自定义脱敏规则,例如只显示前几位和后几位,中间的数字用指定字符替代。
```java
public class IdCardMasking {
public static String maskIdCard(String idCard, int prefixLength, int suffixLength, char maskChar) {
StringBuilder sb = new StringBuilder();
sb.append(idCard.substring(0, prefixLength));
for (int i = 0; i < idCard.length() - prefixLength - suffixLength; i++) {
sb.append(maskChar);
}
sb.append(idCard.substring(idCard.length() - suffixLength));
return sb.toString();
}
public static void main(String[] args) {
String idCard = "440102199001011234";
String maskedIdCard = maskIdCard(idCard, 6, 4, '*');
System.out.println(maskedIdCard); // 输出:440102******1234
}
}
```
java 脱敏 数据脱敏
Java中的数据脱敏是指在保护敏感数据的同时,将其转换为不可识别或不可读的形式。常见的数据脱敏方式包括:
1. 隐藏部分字符:例如将身份证号码的中间几位用*代替。
2. 替换为固定字符:例如将手机号码的前几位替换为固定的数字。
3. 加密处理:例如对银行卡号进行加密处理。
4. 生成虚假数据:例如生成随机的姓名、地址等信息。
Java中可以使用正则表达式、字符串截取等方式实现数据脱敏。同时,也可以使用第三方库来实现数据脱敏,例如Apache Commons Lang库中的StringUtils类提供了一些常用的字符串处理方法,包括字符串脱敏。
需要注意的是,在进行数据脱敏时,需要根据具体业务场景和安全需求来选择合适的脱敏方式,并且要确保脱敏后的数据仍能满足业务需求。
阅读全文