Package com.luna.common.regex
Class DesensitizedUtil
java.lang.Object
com.luna.common.regex.DesensitizedUtil
脱敏工具类,支持以下类型信息的脱敏自动处理:
- 用户ID
- 中文名
- 身份证
- 座机号
- 手机号
- 地址
- 电子邮件
- 密码
- 车牌
- 银行卡号
- Since:
- 5.6.2
- Author:
- dazer and neusoft and qiaomu
-
Nested Class Summary
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionstatic String
【地址】只显示到地区,不显示详细地址,比如:北京市海淀区****static String
银行卡号脱敏 eg: 1101 **** **** **** 3256static String
carLicense
(String carLicense) 【中国车牌】车牌中间用*代替 eg1:null -》 "" eg1:"" -》 "" eg3:苏D40000 -》 苏D4***0 eg4:陕A12345D -》 陕A1****D eg5:京A123 -》 京A123 如果是错误的车牌,不处理static String
chineseName
(String fullName) 【中文姓名】只显示第一个汉字,其他隐藏为2个星号,比如:李**static String
desensitized
(CharSequence str, DesensitizedUtil.DesensitizedType desensitizedType) 脱敏,使用默认的脱敏策略static String
【电子邮箱】邮箱前缀仅显示第一个字母,前缀其他隐藏,用星号代替,@及后面的地址显示,比如:d**@126.comstatic String
fixedPhone
(String num) 【固定电话 前四位,后两位static String
【身份证号】前1位 和后2位static String
mobilePhone
(String num) 【手机号码】前三位,后4位,其他隐藏,比如135****2210static String
【密码】密码的全部字符都用*代替,比如:******static Long
userId()
【用户id】不对外提供userId
-
Constructor Details
-
DesensitizedUtil
public DesensitizedUtil()
-
-
Method Details
-
desensitized
public static String desensitized(CharSequence str, DesensitizedUtil.DesensitizedType desensitizedType) 脱敏,使用默认的脱敏策略DesensitizedUtil.desensitized("100", DesensitizedUtils.DesensitizedType.USER_ID)) = "0" DesensitizedUtil.desensitized("段正淳", DesensitizedUtils.DesensitizedType.CHINESE_NAME)) = "段**" DesensitizedUtil.desensitized("51343620000320711X", DesensitizedUtils.DesensitizedType.ID_CARD)) = "5***************1X" DesensitizedUtil.desensitized("09157518479", DesensitizedUtils.DesensitizedType.FIXED_PHONE)) = "0915*****79" DesensitizedUtil.desensitized("18049531999", DesensitizedUtils.DesensitizedType.MOBILE_PHONE)) = "180****1999" DesensitizedUtil.desensitized("北京市海淀区马连洼街道289号", DesensitizedUtils.DesensitizedType.ADDRESS)) = "北京市海淀区马********" DesensitizedUtil.desensitized("duandazhi-jack@gmail.com.cn", DesensitizedUtils.DesensitizedType.EMAIL)) = "d*************@gmail.com.cn" DesensitizedUtil.desensitized("1234567890", DesensitizedUtils.DesensitizedType.PASSWORD)) = "**********" DesensitizedUtil.desensitized("苏D40000", DesensitizedUtils.DesensitizedType.CAR_LICENSE)) = "苏D4***0" DesensitizedUtil.desensitized("11011111222233333256", DesensitizedUtils.DesensitizedType.BANK_CARD)) = "1101 **** **** **** 3256"
- Parameters:
str
- 字符串desensitizedType
- 脱敏类型;可以脱敏:用户id、中文名、身份证号、座机号、手机号、地址、电子邮件、密码- Returns:
- 脱敏之后的字符串
- Since:
- 5.6.2
-
userId
【用户id】不对外提供userId- Returns:
- 脱敏后的主键
-
chineseName
【中文姓名】只显示第一个汉字,其他隐藏为2个星号,比如:李**- Parameters:
fullName
- 姓名- 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
【密码】密码的全部字符都用*代替,比如:******- Parameters:
password
- 密码- Returns:
- 脱敏后的邮箱
-
carLicense
【中国车牌】车牌中间用*代替 eg1:null -》 "" eg1:"" -》 "" eg3:苏D40000 -》 苏D4***0 eg4:陕A12345D -》 陕A1****D eg5:京A123 -》 京A123 如果是错误的车牌,不处理- Parameters:
carLicense
- 完整的车牌号- Returns:
- 脱敏后的车牌
-
bankCard
银行卡号脱敏 eg: 1101 **** **** **** 3256- Parameters:
bankCardNo
- 银行卡号- Returns:
- 脱敏之后的银行卡号
- Since:
- 5.6.3
-