Administrator
2022-06-16 af2a0456c0d4672e628c5fdfc4b5039d66dc21ca
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
126
127
128
129
130
131
132
133
134
135
136
137
138
139
package org.springblade.common.utils;
 
import com.google.common.base.Strings;
import org.apache.commons.lang3.StringUtils;
import org.springblade.modules.FTP.Result;
 
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");
        String s = "赣洪202222124";
 
        int min = 22110;
        int max = 23110;
        //截取,这个范围的不校验
        String pre = s.substring(0,6);
        String number = s.substring(6);
        if (pre.equals("赣洪2022")){
            int num = Integer.parseInt(number);
            if (num>=22110 && num<=max){
                System.out.println("符合要求" + num);
            }
        }
 
//        Map<String, Object> map = new HashMap<>(1);
//        String a = "sdafa-445sdaf-fsafdsaf";
//        map.put(a,"abc");
//        System.out.println("map = " + map.keySet());
//        Object o = map.get(a);
//        System.out.println("o = " + o);
    }
 
 
}