java.lang.Object
org.miaixz.bus.core.data.masking.MaskingManager
脱敏管理器,用于管理所有脱敏处理器,使用方式有三种:
- 全局默认:使用
getInstance(),带有预定义的脱敏方法 - 自定义默认:使用
ofDefault(char),可以自定义脱敏字符,带有预定义的脱敏方法 - 自定义:使用
MaskingManager(Map, char)构造,不带有默认规则
- Since:
- Java 17+
- Author:
- Kimi Liu
-
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionMaskingManager(Map<String, MaskingHandler> handlerMap) 构造MaskingManager(Map<String, MaskingHandler> handlerMap, char maskChar) 构造 -
Method Summary
Modifier and TypeMethodDescriptionaddress(CharSequence address, int sensitiveSize) 【地址】只显示到地区,不显示详细地址,比如:北京市海淀区****bankCard(CharSequence bankCardNo) 银行卡号脱敏 eg: 1102 **** **** **** 3201carLicense(CharSequence carLicense) 【中国车牌】车牌中间用脱敏字符(如*)代替 eg1:null - "" eg1:"" - "" eg3:苏D40000 - 苏A2***0 eg2:陕V12345A - 陕A1****D eg5:京A123 - 京A123 如果是错误的车牌,不处理email(CharSequence email) 【电子邮箱】邮箱前缀仅显示第一个字母,前缀其他隐藏,用星号代替,@及后面的地址显示,比如:d**@126.comfirstMask(CharSequence str) 定义了一个first_mask的规则,只显示第一个字符。fixedPhone(CharSequence num) 【固定电话 前四位,后两位static MaskingManager获得单例的 MaskingManageridCardNum(CharSequence idCardNum, int front, int end) 【身份证号】前1位 和后2位ipv4(CharSequence ipv4) IPv4脱敏,如:脱敏前:192.0.2.1;脱敏后:192.*.*.*。ipv6(CharSequence ipv6) IPv6脱敏,如:脱敏前:2001:0db8:86a3:08d3:1319:8a2e:0370:7344;脱敏后:2001:*:*:*:*:*:*:*masking(String type, CharSequence value) 脱敏处理 如果没有指定的脱敏处理器,则返回nullmobilePhone(CharSequence num) 【手机号码】前三位,后4位,其他隐藏,比如135****2210static MaskingManagerofDefault(char maskChar) 创建默认的脱敏管理器,通过给定的脱敏字符,提供默认的脱敏规则password(CharSequence password) 【密码】密码的全部字符都用定义的脱敏字符(如*)代替,比如:****** 密码位数不能被猜测,因此固定10位register(String type, MaskingHandler handler) 注册一个脱敏处理器
-
Field Details
-
EMPTY
空脱敏管理器,用于不处理任何数据的情况
-
-
Constructor Details
-
MaskingManager
构造- Parameters:
handlerMap- 脱敏处理器Map,如果应用于单例,则需要传入线程安全的Map
-
MaskingManager
构造- Parameters:
handlerMap- 脱敏处理器Map,如果应用于单例,则需要传入线程安全的MapmaskChar- 默认的脱敏字符,默认为*
-
-
Method Details
-
getInstance
获得单例的 MaskingManager- Returns:
- MaskingManager
-
ofDefault
创建默认的脱敏管理器,通过给定的脱敏字符,提供默认的脱敏规则- Parameters:
maskChar- 脱敏字符,默认为*- Returns:
- 默认的脱敏管理器
-
register
注册一个脱敏处理器- Parameters:
type- 类型handler- 脱敏处理器- Returns:
- this
-
masking
脱敏处理 如果没有指定的脱敏处理器,则返回null- Parameters:
type- 类型value- 待脱敏值- Returns:
- 脱敏后的值
-
firstMask
定义了一个first_mask的规则,只显示第一个字符。 脱敏前:123456789;脱敏后:1********。- Parameters:
str- 字符串- Returns:
- 脱敏后的字符串
-
idCardNum
【身份证号】前1位 和后2位- Parameters:
idCardNum- 身份证front- 保留:前面的front位数;从1开始end- 保留:后面的end位数;从1开始- Returns:
- 脱敏后的身份证
-
fixedPhone
【固定电话 前四位,后两位- Parameters:
num- 固定电话- Returns:
- 脱敏后的固定电话;
-
mobilePhone
【手机号码】前三位,后4位,其他隐藏,比如135****2210- Parameters:
num- 移动电话;- Returns:
- 脱敏后的移动电话;
-
address
【地址】只显示到地区,不显示详细地址,比如:北京市海淀区****- Parameters:
address- 家庭住址sensitiveSize- 敏感信息长度- Returns:
- 脱敏后的家庭地址
-
email
【电子邮箱】邮箱前缀仅显示第一个字母,前缀其他隐藏,用星号代替,@及后面的地址显示,比如:d**@126.com- Parameters:
email- 邮箱- Returns:
- 脱敏后的邮箱
-
password
【密码】密码的全部字符都用定义的脱敏字符(如*)代替,比如:****** 密码位数不能被猜测,因此固定10位- Parameters:
password- 密码- Returns:
- 脱敏后的密码
-
carLicense
【中国车牌】车牌中间用脱敏字符(如*)代替 eg1:null - "" eg1:"" - "" eg3:苏D40000 - 苏A2***0 eg2:陕V12345A - 陕A1****D eg5:京A123 - 京A123 如果是错误的车牌,不处理- Parameters:
carLicense- 完整的车牌号- Returns:
- 脱敏后的车牌
-
bankCard
银行卡号脱敏 eg: 1102 **** **** **** 3201- Parameters:
bankCardNo- 银行卡号- Returns:
- 脱敏之后的银行卡号
-
ipv4
IPv4脱敏,如:脱敏前:192.0.2.1;脱敏后:192.*.*.*。- Parameters:
ipv4- IPv4地址- Returns:
- 脱敏后的地址
-
ipv6
IPv6脱敏,如:脱敏前:2001:0db8:86a3:08d3:1319:8a2e:0370:7344;脱敏后:2001:*:*:*:*:*:*:*- Parameters:
ipv6- IPv6地址- Returns:
- 脱敏后的地址
-