mirror of
https://gitee.com/chinabugotech/hutool.git
synced 2025-05-09 23:51:34 +08:00
DesensitizedUtil增加清空策略
This commit is contained in:
parent
cbcd31910b
commit
a0eeefefe9
@ -6,6 +6,7 @@
|
|||||||
|
|
||||||
### 🐣新特性
|
### 🐣新特性
|
||||||
* 【core 】 NumberUtil.nullToZero增加重载(issue#I7PPD2@Github)
|
* 【core 】 NumberUtil.nullToZero增加重载(issue#I7PPD2@Github)
|
||||||
|
* 【core 】 DesensitizedUtil增加清空策略(issue#I7PUJ2@Github)
|
||||||
|
|
||||||
### 🐞Bug修复
|
### 🐞Bug修复
|
||||||
|
|
||||||
|
@ -78,7 +78,15 @@ public class DesensitizedUtil {
|
|||||||
/**
|
/**
|
||||||
* 定义了一个first_mask的规则,只显示第一个字符。
|
* 定义了一个first_mask的规则,只显示第一个字符。
|
||||||
*/
|
*/
|
||||||
FIRST_MASK
|
FIRST_MASK,
|
||||||
|
/**
|
||||||
|
* 清空为null
|
||||||
|
*/
|
||||||
|
CLEAR_TO_NULL,
|
||||||
|
/**
|
||||||
|
* 清空为""
|
||||||
|
*/
|
||||||
|
CLEAR_TO_EMPTY
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -148,11 +156,37 @@ public class DesensitizedUtil {
|
|||||||
case FIRST_MASK:
|
case FIRST_MASK:
|
||||||
newStr = firstMask(String.valueOf(str));
|
newStr = firstMask(String.valueOf(str));
|
||||||
break;
|
break;
|
||||||
|
case CLEAR_TO_EMPTY:
|
||||||
|
newStr = clear();
|
||||||
|
break;
|
||||||
|
case CLEAR_TO_NULL:
|
||||||
|
newStr = clearToNull();
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
}
|
}
|
||||||
return newStr;
|
return newStr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 清空为空字符串
|
||||||
|
*
|
||||||
|
* @return 清空后的值
|
||||||
|
* @since 5.8.22
|
||||||
|
*/
|
||||||
|
public static String clear() {
|
||||||
|
return StrUtil.EMPTY;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 清空为{@code null}
|
||||||
|
*
|
||||||
|
* @return 清空后的值(null)
|
||||||
|
* @since 5.8.22
|
||||||
|
*/
|
||||||
|
public static String clearToNull() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 【用户id】不对外提供userId
|
* 【用户id】不对外提供userId
|
||||||
*
|
*
|
||||||
@ -308,8 +342,8 @@ public class DesensitizedUtil {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 【银行卡号脱敏】由于银行卡号长度不定,所以只展示前4位,后面的位数根据卡号决定展示1-4位
|
* 【银行卡号脱敏】由于银行卡号长度不定,所以只展示前4位,后面的位数根据卡号决定展示1-4位
|
||||||
* 例如:
|
* 例如:
|
||||||
* <pre>{@code
|
* <pre>{@code
|
||||||
* 1. "1234 2222 3333 4444 6789 9" -> "1234 **** **** **** **** 9"
|
* 1. "1234 2222 3333 4444 6789 9" -> "1234 **** **** **** **** 9"
|
||||||
* 2. "1234 2222 3333 4444 6789 91" -> "1234 **** **** **** **** 91"
|
* 2. "1234 2222 3333 4444 6789 91" -> "1234 **** **** **** **** 91"
|
||||||
* 3. "1234 2222 3333 4444 678" -> "1234 **** **** **** 678"
|
* 3. "1234 2222 3333 4444 678" -> "1234 **** **** **** 678"
|
||||||
@ -329,7 +363,7 @@ public class DesensitizedUtil {
|
|||||||
}
|
}
|
||||||
|
|
||||||
final int length = bankCardNo.length();
|
final int length = bankCardNo.length();
|
||||||
final int endLength= length % 4 == 0 ? 4 : length % 4;
|
final int endLength = length % 4 == 0 ? 4 : length % 4;
|
||||||
final int midLength = length - 4 - endLength;
|
final int midLength = length - 4 - endLength;
|
||||||
|
|
||||||
final StringBuilder buf = new StringBuilder();
|
final StringBuilder buf = new StringBuilder();
|
||||||
|
@ -14,6 +14,8 @@ public class DesensitizedUtilTest {
|
|||||||
@Test
|
@Test
|
||||||
public void desensitizedTest() {
|
public void desensitizedTest() {
|
||||||
Assert.assertEquals("0", DesensitizedUtil.desensitized("100", DesensitizedUtil.DesensitizedType.USER_ID));
|
Assert.assertEquals("0", DesensitizedUtil.desensitized("100", DesensitizedUtil.DesensitizedType.USER_ID));
|
||||||
|
Assert.assertEquals("", DesensitizedUtil.desensitized("100", DesensitizedUtil.DesensitizedType.CLEAR_TO_EMPTY));
|
||||||
|
Assert.assertNull(DesensitizedUtil.desensitized("100", DesensitizedUtil.DesensitizedType.CLEAR_TO_NULL));
|
||||||
Assert.assertEquals("段**", DesensitizedUtil.desensitized("段正淳", DesensitizedUtil.DesensitizedType.CHINESE_NAME));
|
Assert.assertEquals("段**", DesensitizedUtil.desensitized("段正淳", DesensitizedUtil.DesensitizedType.CHINESE_NAME));
|
||||||
Assert.assertEquals("5***************1X", DesensitizedUtil.desensitized("51343620000320711X", DesensitizedUtil.DesensitizedType.ID_CARD));
|
Assert.assertEquals("5***************1X", DesensitizedUtil.desensitized("51343620000320711X", DesensitizedUtil.DesensitizedType.ID_CARD));
|
||||||
Assert.assertEquals("0915*****79", DesensitizedUtil.desensitized("09157518479", DesensitizedUtil.DesensitizedType.FIXED_PHONE));
|
Assert.assertEquals("0915*****79", DesensitizedUtil.desensitized("09157518479", DesensitizedUtil.DesensitizedType.FIXED_PHONE));
|
||||||
|
Loading…
x
Reference in New Issue
Block a user