mirror of
https://gitee.com/chinabugotech/hutool.git
synced 2025-07-21 15:09:48 +08:00
1、增加脱敏专业工具类 DesensitizedUtils ,增加对 用户id、中文名、身份证号、座机号、手机号、地址、电子邮件、密码;
(生产项目中使用的很多,希望采纳,该脱敏工具类,可以极大简化 项目中脱敏需求的需求) 2、CharSequenceUtil工具类,增加:Left/Right/Mid 用来兼容 org.apache.commons.lang3.StringUtils 使用习惯; 目前CharSequenceUtil工具类中有 类似的功能,但是和 Left/Right/Mid 功能还是有很大差距。 3、新增的DesensitizedUtils 和 CharSequenceUtil新增left、right、mid方法都经过了测试;
This commit is contained in:
@@ -0,0 +1,58 @@
|
||||
package cn.hutool.core.util;
|
||||
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
|
||||
/**
|
||||
* 脱敏工具类 DesensitizedUtils 安全测试
|
||||
* @author dazer and nuesoft
|
||||
* @date 2021/3/20 22:34
|
||||
* @see DesensitizedUtils
|
||||
*/
|
||||
public class DesensitizedUtilsTest {
|
||||
|
||||
@Test
|
||||
public void userIdTest() {
|
||||
Assert.assertEquals(Long.valueOf(0L), DesensitizedUtils.userId());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void chineseNameTest() {
|
||||
Assert.assertEquals("段**", DesensitizedUtils.chineseName("段正淳"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void idCardNumTest() {
|
||||
Assert.assertEquals("5***************1X", DesensitizedUtils.idCardNum("51343620000320711X", 1, 2));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void fixedPhoneTest() {
|
||||
Assert.assertEquals("0915*****79", DesensitizedUtils.fixedPhone("09157518479"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void mobilePhoneTest() {
|
||||
Assert.assertEquals("180****1999", DesensitizedUtils.mobilePhone("18049531999"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void addressTest() {
|
||||
Assert.assertEquals("北京市海淀区马连洼街*****", DesensitizedUtils.address("北京市海淀区马连洼街道289号", 5));
|
||||
Assert.assertEquals("***************", DesensitizedUtils.address("北京市海淀区马连洼街道289号", 50));
|
||||
Assert.assertEquals("北京市海淀区马连洼街道289号", DesensitizedUtils.address("北京市海淀区马连洼街道289号", 0));
|
||||
Assert.assertEquals("北京市海淀区马连洼街道289号", DesensitizedUtils.address("北京市海淀区马连洼街道289号", -1));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void emailTest() {
|
||||
Assert.assertEquals("d********@126.com", DesensitizedUtils.email("duandazhi@126.com"));
|
||||
Assert.assertEquals("d********@gmail.com.cn", DesensitizedUtils.email("duandazhi@gmail.com.cn"));
|
||||
Assert.assertEquals("d*************@gmail.com.cn", DesensitizedUtils.email("duandazhi-jack@gmail.com.cn"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void passwordTest() {
|
||||
Assert.assertEquals("**********", DesensitizedUtils.password("1234567890"));
|
||||
}
|
||||
}
|
@@ -192,6 +192,10 @@ public class StrUtilTest {
|
||||
String a = "1039";
|
||||
String result = StrUtil.padPre(a, 8, "0"); //在字符串1039前补4个0
|
||||
Assert.assertEquals("00001039", result);
|
||||
|
||||
String aa = "1039";
|
||||
String result1 = StrUtil.padPre(aa, -1, "0"); //在字符串1039前补4个0
|
||||
Assert.assertEquals("103", result1);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -403,6 +407,7 @@ public class StrUtilTest {
|
||||
Assert.assertNull(StrUtil.padAfter(null, 10, ' '));
|
||||
Assert.assertEquals("100", StrUtil.padAfter("1", 3, '0'));
|
||||
Assert.assertEquals("23", StrUtil.padAfter("123", 2, '0'));
|
||||
Assert.assertEquals("23", StrUtil.padAfter("123", -1, '0'));
|
||||
|
||||
Assert.assertNull(StrUtil.padAfter(null, 10, "ABC"));
|
||||
Assert.assertEquals("1AB", StrUtil.padAfter("1", 3, "ABC"));
|
||||
@@ -492,4 +497,109 @@ public class StrUtilTest {
|
||||
final String ret = StrUtil.indexedFormat("this is {0} for {1}", "a", 1000);
|
||||
Assert.assertEquals("this is a for 1,000", ret);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void leftTest() {
|
||||
Assert.assertNull(StrUtil.left(null, 1));
|
||||
Assert.assertEquals("", StrUtil.left("neu", -1));
|
||||
Assert.assertEquals("", StrUtil.left("", 1));
|
||||
Assert.assertEquals("", StrUtil.left("neu", 0));
|
||||
Assert.assertEquals("ne", StrUtil.left("neu", 2));
|
||||
Assert.assertEquals("neu", StrUtil.left("neu", 4));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void leftPadTest() {
|
||||
Assert.assertNull(StrUtil.leftPad(null, 1));
|
||||
Assert.assertEquals("", StrUtil.leftPad("", -1));
|
||||
Assert.assertEquals(" ", StrUtil.leftPad("", 3));
|
||||
Assert.assertEquals("bat", StrUtil.leftPad("bat", -1));
|
||||
Assert.assertEquals("bat", StrUtil.leftPad("bat", 1));
|
||||
Assert.assertEquals("bat", StrUtil.leftPad("bat", 3));
|
||||
Assert.assertEquals(" bat", StrUtil.leftPad("bat", 5));
|
||||
|
||||
Assert.assertNull(StrUtil.leftPad(null, 1, "z"));
|
||||
Assert.assertEquals("", StrUtil.leftPad("", -1, "z"));
|
||||
Assert.assertEquals("zzz", StrUtil.leftPad("", 3, "z"));
|
||||
Assert.assertEquals("bat", StrUtil.leftPad("bat", -1, "z"));
|
||||
Assert.assertEquals("bat", StrUtil.leftPad("bat", 1, "z"));
|
||||
Assert.assertEquals("bat", StrUtil.leftPad("bat", 3, "z"));
|
||||
Assert.assertEquals("zzbat", StrUtil.leftPad("bat", 5, "z"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void rightTest() {
|
||||
Assert.assertNull(StrUtil.right(null, 1));
|
||||
Assert.assertEquals("", StrUtil.right("neu", -1));
|
||||
Assert.assertEquals("", StrUtil.right("", 1));
|
||||
Assert.assertEquals("", StrUtil.right("neu", 0));
|
||||
Assert.assertEquals("eu", StrUtil.right("neu", 2));
|
||||
Assert.assertEquals("neu", StrUtil.right("neu", 4));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void rightPadTest() {
|
||||
Assert.assertNull(StrUtil.rightPad(null, 1));
|
||||
Assert.assertEquals(" ", StrUtil.rightPad("", 3));
|
||||
Assert.assertEquals("bat", StrUtil.rightPad("bat", 3));
|
||||
Assert.assertEquals("bat ", StrUtil.rightPad("bat", 5));
|
||||
Assert.assertEquals("bat", StrUtil.rightPad("bat", 1));
|
||||
Assert.assertEquals("bat", StrUtil.rightPad("bat", -1));
|
||||
|
||||
Assert.assertNull(StrUtil.rightPad(null, 1, 'z'));
|
||||
Assert.assertEquals("zzz", StrUtil.rightPad("", 3, 'z'));
|
||||
Assert.assertEquals("bat", StrUtil.rightPad("bat", 3, 'z'));
|
||||
Assert.assertEquals("batzz", StrUtil.rightPad("bat", 5, 'z'));
|
||||
Assert.assertEquals("bat", StrUtil.rightPad("bat", 1, 'z'));
|
||||
Assert.assertEquals("bat", StrUtil.rightPad("bat", -1, 'z'));
|
||||
|
||||
Assert.assertNull(StrUtil.rightPad(null, 1, "z"));
|
||||
Assert.assertEquals("zzz", StrUtil.rightPad("", 3, "z"));
|
||||
Assert.assertEquals("bat", StrUtil.rightPad("bat", 3, "z"));
|
||||
Assert.assertEquals("batzz", StrUtil.rightPad("bat", 5, "z"));
|
||||
Assert.assertEquals("bat", StrUtil.rightPad("bat", 1, "z"));
|
||||
Assert.assertEquals("bat", StrUtil.rightPad("bat", -1, "z"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void midTest() {
|
||||
Assert.assertNull(StrUtil.mid(null, 1, 1));
|
||||
Assert.assertEquals("", StrUtil.mid("abc", 1, -1));
|
||||
Assert.assertEquals("", StrUtil.mid("", 0, 1));
|
||||
Assert.assertEquals("ab", StrUtil.mid("abc", 0, 2));
|
||||
Assert.assertEquals("abc", StrUtil.mid("abc", 0, 4));
|
||||
Assert.assertEquals("c", StrUtil.mid("abc", 2, 4));
|
||||
Assert.assertEquals("", StrUtil.mid("abc", 4, 2));
|
||||
Assert.assertEquals("ab", StrUtil.mid("abc", -2, 2));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void hideTest() {
|
||||
Assert.assertNull(StrUtil.hide(null, 1, 1));
|
||||
Assert.assertEquals("", StrUtil.hide("", 1, 1));
|
||||
Assert.assertEquals("****duan@163.com", StrUtil.hide("jackduan@163.com", -1, 4));
|
||||
Assert.assertEquals("ja*kduan@163.com", StrUtil.hide("jackduan@163.com", 2, 3));
|
||||
Assert.assertEquals("jackduan@163.com", StrUtil.hide("jackduan@163.com", 3, 2));
|
||||
Assert.assertEquals("jackduan@163.com", StrUtil.hide("jackduan@163.com", 16, 16));
|
||||
Assert.assertEquals("jackduan@163.com", StrUtil.hide("jackduan@163.com", 16, 17));
|
||||
|
||||
|
||||
Assert.assertEquals("0", StrUtil.hide("100", DesensitizedUtils.DesensitizedType.USER_ID));
|
||||
Assert.assertEquals("段**", StrUtil.hide("段正淳", DesensitizedUtils.DesensitizedType.CHINESE_NAME));
|
||||
Assert.assertEquals("5***************1X", StrUtil.hide("51343620000320711X", DesensitizedUtils.DesensitizedType.ID_CARD));
|
||||
Assert.assertEquals("0915*****79", StrUtil.hide("09157518479", DesensitizedUtils.DesensitizedType.FIXED_PHONE));
|
||||
Assert.assertEquals("180****1999", StrUtil.hide("18049531999", DesensitizedUtils.DesensitizedType.MOBILE_PHONE));
|
||||
Assert.assertEquals("北京市海淀区马********", StrUtil.hide("北京市海淀区马连洼街道289号", DesensitizedUtils.DesensitizedType.ADDRESS));
|
||||
Assert.assertEquals("d*************@gmail.com.cn", StrUtil.hide("duandazhi-jack@gmail.com.cn", DesensitizedUtils.DesensitizedType.EMAIL));
|
||||
Assert.assertEquals("**********", StrUtil.hide("1234567890", DesensitizedUtils.DesensitizedType.PASSWORD));
|
||||
|
||||
Assert.assertEquals("0", StrUtil.desensitized("100", DesensitizedUtils.DesensitizedType.USER_ID));
|
||||
Assert.assertEquals("段**", StrUtil.desensitized("段正淳", DesensitizedUtils.DesensitizedType.CHINESE_NAME));
|
||||
Assert.assertEquals("5***************1X", StrUtil.desensitized("51343620000320711X", DesensitizedUtils.DesensitizedType.ID_CARD));
|
||||
Assert.assertEquals("0915*****79", StrUtil.desensitized("09157518479", DesensitizedUtils.DesensitizedType.FIXED_PHONE));
|
||||
Assert.assertEquals("180****1999", StrUtil.desensitized("18049531999", DesensitizedUtils.DesensitizedType.MOBILE_PHONE));
|
||||
Assert.assertEquals("北京市海淀区马********", StrUtil.desensitized("北京市海淀区马连洼街道289号", DesensitizedUtils.DesensitizedType.ADDRESS));
|
||||
Assert.assertEquals("d*************@gmail.com.cn", StrUtil.desensitized("duandazhi-jack@gmail.com.cn", DesensitizedUtils.DesensitizedType.EMAIL));
|
||||
Assert.assertEquals("**********", StrUtil.desensitized("1234567890", DesensitizedUtils.DesensitizedType.PASSWORD));
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user