Administrator
2022-04-27 8e6f6217e52a635d1dfd4ccbb549b0427d3f9fa6
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
package org.springblade.common.utils;
 
import com.google.common.base.Strings;
import org.apache.commons.lang3.StringUtils;
 
import java.util.HashMap;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
 
/**
 * 铭感信息处理
 * @author zhongrj
 * @since 2022-04-27
 */
public class DesensitizedUtil {
 
 
    /**
     * 姓名脱敏处理
     * @param fullName
     * @return
     */
    public static String desensitizedName(String fullName){
        if (!Strings.isNullOrEmpty(fullName)) {
            String name = StringUtils.left(fullName, 1);
            return StringUtils.rightPad(name, StringUtils.length(fullName), "*");
        }
        return fullName;
    }
 
    /**
     * 手机号脱敏处理
     * @param phoneNumber
     * @return
     */
    public static String desensitizedPhoneNumber(String phoneNumber){
        if(StringUtils.isNotEmpty(phoneNumber)){
            phoneNumber = phoneNumber.replaceAll("(\\w{3})\\w*(\\w{4})", "$1****$2");
        }
        return phoneNumber;
    }
 
    /**
     * 身份证号码脱敏处理
     * @param idNumber
     * @return
     */
    public static String desensitizedIdNumber(String idNumber){
        if (!Strings.isNullOrEmpty(idNumber)) {
            if (idNumber.length() == 15){
                idNumber = idNumber.replaceAll("(\\w{6})\\w*(\\w{3})", "$1******$2");
            }
            if (idNumber.length() == 18){
                idNumber = idNumber.replaceAll("(\\w{6})\\w*(\\w{3})", "$1*********$2");
            }
        }
        return idNumber;
    }
 
    /**
     * 保安证编号
     * @param securityNumber
     * @return
     */
    public static String desensitizedSecurityNumber(String securityNumber){
        if (!Strings.isNullOrEmpty(securityNumber)) {
            //分割
            String s = securityNumber.substring(0, securityNumber.length() - 4);
            String s2 = s.replaceAll("\\D", "*");
            //替换数字
            Pattern p = Pattern.compile("[\\d]");
            Matcher matcher = p.matcher(s2);
            String s3 = matcher.replaceAll("*");
            //保留后4位
            String s1 = securityNumber.substring(securityNumber.length() - 4);
            securityNumber = s3 + s1;
        }
        return securityNumber;
    }
 
    /**
     * 身份证号码脱敏处理(只保留后4位)
     * @param idNumber
     * @return
     */
    public static String desensitizedIdNumberBy4(String idNumber){
        if (!Strings.isNullOrEmpty(idNumber)) {
            if (idNumber.length() == 15){
                idNumber = idNumber.replaceAll("\\w*(\\w{4})", "***********$1");
            }
            if (idNumber.length() == 18){
                idNumber = idNumber.replaceAll("\\w*(\\w{4})", "**************$1");
            }
        }
        return idNumber;
    }
 
 
    /**
     * 地址
     * @param address
     * @return
     */
    public static String desensitizedAddress(String address){
        if (!Strings.isNullOrEmpty(address)) {
            return StringUtils.left(address, 3).concat(StringUtils.removeStart(StringUtils.leftPad(StringUtils.right(address, address.length()-11), StringUtils.length(address), "*"), "***"));
        }
        return address;
    }
 
    public static void main(String[] args) {
        desensitizedIdNumberBy4("360728199205280059");
        desensitizedSecurityNumber("赣洪202100124");
 
        Map<String, Object> map = new HashMap<>(1);
        String a = "sdafa-445sdaf-fsafdsaf";
        map.put(a,"abc");
        System.out.println("map = " + map);
        Object o = map.get(a);
        System.out.println("o = " + o);
    }
 
 
}