This commit is contained in:
Looly
2025-08-29 12:22:53 +08:00
parent 763f672236
commit 4685644422
2 changed files with 44 additions and 39 deletions

View File

@@ -75,14 +75,14 @@ public class DesensitizedUtil {
* IPv6地址 * IPv6地址
*/ */
IPV6, IPV6,
/** /**
* 护照号 * 护照号
*/ */
PASSPORT, PASSPORT,
/** /**
* 统一社会信用代码 * 统一社会信用代码
*/ */
CREDIT_CODE, CREDIT_CODE,
/** /**
* 定义了一个first_mask的规则只显示第一个字符。 * 定义了一个first_mask的规则只显示第一个字符。
*/ */
@@ -161,12 +161,12 @@ public class DesensitizedUtil {
case IPV6: case IPV6:
newStr = ipv6(String.valueOf(str)); newStr = ipv6(String.valueOf(str));
break; break;
case PASSPORT: case PASSPORT:
newStr = passport(String.valueOf(str)); newStr = passport(String.valueOf(str));
break; break;
case CREDIT_CODE: case CREDIT_CODE:
newStr = creditCode(String.valueOf(str)); newStr = creditCode(String.valueOf(str));
break; break;
case FIRST_MASK: case FIRST_MASK:
newStr = firstMask(String.valueOf(str)); newStr = firstMask(String.valueOf(str));
break; break;
@@ -412,29 +412,34 @@ public class DesensitizedUtil {
return StrUtil.subBefore(ipv6, ':', false) + ":*:*:*:*:*:*:*"; return StrUtil.subBefore(ipv6, ':', false) + ":*:*:*:*:*:*:*";
} }
/** /**
* 护照号脱敏 * 护照号脱敏
* 规则前2后2长度不足时保留最小有效信息 * 规则前2后2长度不足时保留最小有效信息
* 示例PJ1234567 → PJ*****67 * 示例PJ1234567 → PJ*****67
*/ *
public static String passport(String passport) { * @param passport 护照号
if (StrUtil.isBlank(passport)) return passport; * @return 脱敏后的护照号
final int length = passport.length(); */
if (length <= 2) return StrUtil.hide(passport, 0, length); public static String passport(String passport) {
return StrUtil.hide(passport, 2, length - 2); if (StrUtil.isBlank(passport)) return passport;
} final int length = passport.length();
if (length <= 2) return StrUtil.hide(passport, 0, length);
return StrUtil.hide(passport, 2, length - 2);
}
/** /**
* 统一社会信用代码脱敏 * 统一社会信用代码脱敏
* 规则前4后4长度不足时保留最小有效信息 * 规则前4后4长度不足时保留最小有效信息
* 统一社会信用代码由18位数字或大写英文字母组成 * 统一社会信用代码由18位数字或大写英文字母组成
* 示例91110108MA01ABCDE7 → 9111**********CDE7 * 示例91110108MA01ABCDE7 → 9111**********CDE7
* *
*/ * @param code 统一社会信用代码
public static String creditCode(String code) { * @return 脱敏后的统一社会信用代码
if (StrUtil.isBlank(code)) return code; */
final int length = code.length(); public static String creditCode(String code) {
if (length <= 4) return StrUtil.hide(code, 0, length); if (StrUtil.isBlank(code)) return code;
return StrUtil.hide(code, 4, length - 4); final int length = code.length();
} if (length <= 4) return StrUtil.hide(code, 0, length);
return StrUtil.hide(code, 4, length - 4);
}
} }

View File

@@ -43,7 +43,7 @@ public enum BeanCopierCache {
*/ */
public BeanCopier get(Class<?> srcClass, Class<?> targetClass, boolean useConverter) { public BeanCopier get(Class<?> srcClass, Class<?> targetClass, boolean useConverter) {
final String key = genKey(srcClass, targetClass, useConverter); final String key = genKey(srcClass, targetClass, useConverter);
return cache.computeIfAbsent(key, () -> BeanCopier.create(srcClass, targetClass, useConverter)); return cache.computeIfAbsent(key, (k) -> BeanCopier.create(srcClass, targetClass, useConverter));
} }
/** /**