mirror of
https://gitee.com/chinabugotech/hutool.git
synced 2025-05-09 23:51:34 +08:00
add:脱敏增加车牌号
This commit is contained in:
parent
e5dd37f68c
commit
65a43f5318
@ -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 字符串
|
||||||
|
@ -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());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 【中国车牌】车牌中间用*代替
|
||||||
|
* 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() {
|
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"));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user