add:脱敏增加车牌号

This commit is contained in:
duandazhi 2021-03-21 23:08:12 +08:00
parent e5dd37f68c
commit 65a43f5318
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("北京市海淀区马连洼街道289号", DesensitizedUtils.DesensitizedType.ADDRESS)) = "北京市海淀区马********"
* StrUtil.desensitized("duandazhi-jack@gmail.com.cn", DesensitizedUtils.DesensitizedType.EMAIL)) = "d*************@gmail.com.cn" * StrUtil.desensitized("duandazhi-jack@gmail.com.cn", DesensitizedUtils.DesensitizedType.EMAIL)) = "d*************@gmail.com.cn"
* StrUtil.desensitized("1234567890", DesensitizedUtils.DesensitizedType.PASSWORD)) = "**********" * StrUtil.desensitized("1234567890", DesensitizedUtils.DesensitizedType.PASSWORD)) = "**********"
* StrUtil.desensitized("苏D40000", DesensitizedUtils.DesensitizedType.CAR_LICENSE)) = "苏D4***0"
* </pre> * </pre>
* *
* @param str 字符串 * @param str 字符串

View File

@ -40,7 +40,9 @@ public class DesensitizedUtil {
//电子邮件 //电子邮件
EMAIL, EMAIL,
//密码 //密码
PASSWORD PASSWORD,
//中国大陆车牌包含普通车辆新能源车辆
CAR_LICENSE
} }
/** /**
@ -54,7 +56,7 @@ public class DesensitizedUtil {
* DesensitizedUtil.desensitized("北京市海淀区马连洼街道289号", DesensitizedUtils.DesensitizedType.ADDRESS)) = "北京市海淀区马********" * DesensitizedUtil.desensitized("北京市海淀区马连洼街道289号", DesensitizedUtils.DesensitizedType.ADDRESS)) = "北京市海淀区马********"
* DesensitizedUtil.desensitized("duandazhi-jack@gmail.com.cn", DesensitizedUtils.DesensitizedType.EMAIL)) = "d*************@gmail.com.cn" * DesensitizedUtil.desensitized("duandazhi-jack@gmail.com.cn", DesensitizedUtils.DesensitizedType.EMAIL)) = "d*************@gmail.com.cn"
* DesensitizedUtil.desensitized("1234567890", DesensitizedUtils.DesensitizedType.PASSWORD)) = "**********" * DesensitizedUtil.desensitized("1234567890", DesensitizedUtils.DesensitizedType.PASSWORD)) = "**********"
* </pre> * DesensitizedUtil.desensitized("苏D40000", DesensitizedUtils.DesensitizedType.CAR_LICENSE)) = "苏D4***0"
* *
* @author dazer and neusoft and qiaomu * @author dazer and neusoft and qiaomu
* @param str 字符串 * @param str 字符串
@ -92,6 +94,9 @@ public class DesensitizedUtil {
case PASSWORD: case PASSWORD:
newStr = DesensitizedUtil.password(String.valueOf(str)); newStr = DesensitizedUtil.password(String.valueOf(str));
break; break;
case CAR_LICENSE:
newStr = DesensitizedUtil.carLicense(String.valueOf(str));
break;
default: default:
} }
return newStr; return newStr;
@ -214,4 +219,29 @@ public class DesensitizedUtil {
} }
return StrUtil.repeat('*', password.length()); 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() { public void passwordTest() {
Assert.assertEquals("**********", DesensitizedUtil.password("1234567890")); 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"));
}
} }