!283 add:脱敏增加车牌号

Merge pull request !283 from dazer007/v5-dev
This commit is contained in:
Looly 2021-03-22 09:39:40 +08:00 committed by Gitee
commit 5d3ca7c4f4
3 changed files with 42 additions and 2 deletions

View File

@ -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 字符串

View File

@ -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());
}
/**
* 中国车牌车牌中间用*代替
* eg1null => ""
* 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;
}
}

View File

@ -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"));
}
}