中国算力平台算力登记系统2.0
yanzhaofeige
3 days ago 9a224d216652ef2d6ff2e0bd01fba69c86a3f277
commit | author | age
43dc29 1 package com.odcc.cpzidc.common.enums;
Y 2
3 import java.util.function.Function;
4 import com.odcc.cpzidc.common.utils.DesensitizedUtil;
5
6 /**
7  * 脱敏类型
8  *
9  * @author ruoyi
10  */
11 public enum DesensitizedType
12 {
13     /**
14      * 姓名,第2位星号替换
15      */
16     USERNAME(s -> s.replaceAll("(\\S)\\S(\\S*)", "$1*$2")),
17
18     /**
19      * 密码,全部字符都用*代替
20      */
21     PASSWORD(DesensitizedUtil::password),
22
23     /**
24      * 身份证,中间10位星号替换
25      */
26     ID_CARD(s -> s.replaceAll("(\\d{4})\\d{10}(\\d{4})", "$1** **** ****$2")),
27
28     /**
29      * 手机号,中间4位星号替换
30      */
31     PHONE(s -> s.replaceAll("(\\d{3})\\d{4}(\\d{4})", "$1****$2")),
32
33     /**
34      * 电子邮箱,仅显示第一个字母和@后面的地址显示,其他星号替换
35      */
36     EMAIL(s -> s.replaceAll("(^.)[^@]*(@.*$)", "$1****$2")),
37
38     /**
39      * 银行卡号,保留最后4位,其他星号替换
40      */
41     BANK_CARD(s -> s.replaceAll("\\d{15}(\\d{3})", "**** **** **** **** $1")),
42
43     /**
44      * 车牌号码,包含普通车辆、新能源车辆
45      */
46     CAR_LICENSE(DesensitizedUtil::carLicense);
47
48     private final Function<String, String> desensitizer;
49
50     DesensitizedType(Function<String, String> desensitizer)
51     {
52         this.desensitizer = desensitizer;
53     }
54
55     public Function<String, String> desensitizer()
56     {
57         return desensitizer;
58     }
59 }