mirror of
https://gitee.com/chinabugotech/hutool.git
synced 2025-04-19 03:01:48 +08:00
commit
5d3ca7c4f4
@ -3647,6 +3647,7 @@ public class CharSequenceUtil {
|
||||
* StrUtil.desensitized("北京市海淀区马连洼街道289号", DesensitizedUtils.DesensitizedType.ADDRESS)) = "北京市海淀区马********"
|
||||
* StrUtil.desensitized("duandazhi-jack@gmail.com.cn", DesensitizedUtils.DesensitizedType.EMAIL)) = "d*************@gmail.com.cn"
|
||||
* StrUtil.desensitized("1234567890", DesensitizedUtils.DesensitizedType.PASSWORD)) = "**********"
|
||||
* StrUtil.desensitized("苏D40000", DesensitizedUtils.DesensitizedType.CAR_LICENSE)) = "苏D4***0"
|
||||
* </pre>
|
||||
*
|
||||
* @param str 字符串
|
||||
|
@ -40,7 +40,9 @@ public class DesensitizedUtil {
|
||||
//电子邮件
|
||||
EMAIL,
|
||||
//密码
|
||||
PASSWORD
|
||||
PASSWORD,
|
||||
//中国大陆车牌,包含普通车辆、新能源车辆
|
||||
CAR_LICENSE
|
||||
}
|
||||
|
||||
/**
|
||||
@ -54,7 +56,7 @@ public class DesensitizedUtil {
|
||||
* 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)) = "**********"
|
||||
* </pre>
|
||||
* DesensitizedUtil.desensitized("苏D40000", DesensitizedUtils.DesensitizedType.CAR_LICENSE)) = "苏D4***0"
|
||||
*
|
||||
* @author dazer and neusoft and qiaomu
|
||||
* @param str 字符串
|
||||
@ -92,6 +94,9 @@ public class DesensitizedUtil {
|
||||
case PASSWORD:
|
||||
newStr = DesensitizedUtil.password(String.valueOf(str));
|
||||
break;
|
||||
case CAR_LICENSE:
|
||||
newStr = DesensitizedUtil.carLicense(String.valueOf(str));
|
||||
break;
|
||||
default:
|
||||
}
|
||||
return newStr;
|
||||
@ -214,4 +219,29 @@ public class DesensitizedUtil {
|
||||
}
|
||||
return StrUtil.repeat('*', password.length());
|
||||
}
|
||||
|
||||
/**
|
||||
* 【中国车牌】车牌中间用*代替
|
||||
* eg1:null => ""
|
||||
* eg1:"" => ""
|
||||
* eg3:苏D40000 => 苏D4***0
|
||||
* eg4:陕A12345D => 陕A1****D
|
||||
* eg5:京A123 => 京A123 如果是错误的车牌,不处理
|
||||
*
|
||||
* @param carLicense 完整的车牌号
|
||||
* @return 脱敏后的车牌
|
||||
*/
|
||||
public static String carLicense(String carLicense) {
|
||||
if (StrUtil.isBlank(carLicense)) {
|
||||
return StrUtil.EMPTY;
|
||||
}
|
||||
// 普通车牌
|
||||
if (carLicense.length() == 7) {
|
||||
carLicense = StrUtil.hide(carLicense, 3, 6);
|
||||
} else if (carLicense.length() == 8) {
|
||||
// 新能源车牌
|
||||
carLicense = StrUtil.hide(carLicense, 3, 7);
|
||||
}
|
||||
return carLicense;
|
||||
}
|
||||
}
|
||||
|
@ -76,4 +76,13 @@ public class DesensitizedUtilTest {
|
||||
public void passwordTest() {
|
||||
Assert.assertEquals("**********", DesensitizedUtil.password("1234567890"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void carLicenseTest() {
|
||||
Assert.assertEquals("", DesensitizedUtil.carLicense(null));
|
||||
Assert.assertEquals("", DesensitizedUtil.carLicense(""));
|
||||
Assert.assertEquals("苏D4***0", DesensitizedUtil.carLicense("苏D40000"));
|
||||
Assert.assertEquals("陕A1****D", DesensitizedUtil.carLicense("陕A12345D"));
|
||||
Assert.assertEquals("京A123", DesensitizedUtil.carLicense("京A123"));
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user