mirror of
https://gitee.com/dromara/hutool.git
synced 2025-05-06 05:38:00 +08:00
fix:修复脱敏银行卡号bug
This commit is contained in:
parent
7ab95e5cb8
commit
2ec1c9dfa7
@ -307,26 +307,30 @@ public class DesensitizedUtil {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 银行卡号脱敏
|
* 【银行卡号脱敏】由于银行卡号长度不定,所以只展示前4位,后面的位数根据卡号决定展示1-4位
|
||||||
* eg: 1101 **** **** **** 3256
|
* 例如:
|
||||||
|
* 1. "1234 2222 3333 4444 6789 9" ==》"1234 **** **** **** **** 9"
|
||||||
|
* 2. "1234 2222 3333 4444 6789 91" ==》"1234 **** **** **** **** 91"
|
||||||
|
* 3. "1234 2222 3333 4444 678" ==> "1234 **** **** **** 678"
|
||||||
|
* 4. "1234 2222 3333 4444 6789" ==》 "1234 **** **** **** 6789"
|
||||||
*
|
*
|
||||||
* @param bankCardNo 银行卡号
|
* @param bankCardNo 银行卡号
|
||||||
* @return 脱敏之后的银行卡号
|
* @return 脱敏之后的银行卡号
|
||||||
* @since 5.6.3
|
|
||||||
*/
|
*/
|
||||||
public static String bankCard(String bankCardNo) {
|
public static String bankCard(String bankCardNo) {
|
||||||
if (StrUtil.isBlank(bankCardNo)) {
|
if (StrUtil.isBlank(bankCardNo)) {
|
||||||
return bankCardNo;
|
return bankCardNo;
|
||||||
}
|
}
|
||||||
bankCardNo = StrUtil.trim(bankCardNo);
|
bankCardNo = StrUtil.replace(bankCardNo," ","");
|
||||||
if (bankCardNo.length() < 9) {
|
if (bankCardNo.length() < 9) {
|
||||||
return bankCardNo;
|
return bankCardNo;
|
||||||
}
|
}
|
||||||
|
|
||||||
final int length = bankCardNo.length();
|
final int length = bankCardNo.length();
|
||||||
final int midLength = length - 8;
|
final int endLength= length % 4 == 0 ? 4 : length % 4;
|
||||||
final StringBuilder buf = new StringBuilder();
|
final int midLength = length - 4 - endLength;
|
||||||
|
|
||||||
|
final StringBuilder buf = new StringBuilder();
|
||||||
buf.append(bankCardNo, 0, 4);
|
buf.append(bankCardNo, 0, 4);
|
||||||
for (int i = 0; i < midLength; ++i) {
|
for (int i = 0; i < midLength; ++i) {
|
||||||
if (i % 4 == 0) {
|
if (i % 4 == 0) {
|
||||||
@ -334,7 +338,7 @@ public class DesensitizedUtil {
|
|||||||
}
|
}
|
||||||
buf.append('*');
|
buf.append('*');
|
||||||
}
|
}
|
||||||
buf.append(CharUtil.SPACE).append(bankCardNo, length - 4, length);
|
buf.append(CharUtil.SPACE).append(bankCardNo, length - endLength, length);
|
||||||
return buf.toString();
|
return buf.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -89,4 +89,15 @@ public class DesensitizedUtilTest {
|
|||||||
Assert.assertEquals("陕A1****D", DesensitizedUtil.carLicense("陕A12345D"));
|
Assert.assertEquals("陕A1****D", DesensitizedUtil.carLicense("陕A12345D"));
|
||||||
Assert.assertEquals("京A123", DesensitizedUtil.carLicense("京A123"));
|
Assert.assertEquals("京A123", DesensitizedUtil.carLicense("京A123"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void bankCardTest(){
|
||||||
|
Assert.assertEquals(null, DesensitizedUtil.bankCard(null));
|
||||||
|
Assert.assertEquals("", DesensitizedUtil.bankCard(""));
|
||||||
|
Assert.assertEquals("1234 **** **** **** **** 9", DesensitizedUtil.bankCard("1234 2222 3333 4444 6789 9"));
|
||||||
|
Assert.assertEquals("1234 **** **** **** **** 91", DesensitizedUtil.bankCard("1234 2222 3333 4444 6789 91"));
|
||||||
|
Assert.assertEquals("1234 **** **** **** 6789", DesensitizedUtil.bankCard("1234 2222 3333 4444 6789"));
|
||||||
|
Assert.assertEquals("1234 **** **** **** 678", DesensitizedUtil.bankCard("1234 2222 3333 4444 678"));
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user