From 0d87c12d3c57e523da1258e77ccc57acdc0a3887 Mon Sep 17 00:00:00 2001 From: AprilWind <2100166581@qq.com> Date: Thu, 18 Dec 2025 17:30:32 +0800 Subject: [PATCH] =?UTF-8?q?update=20=E4=BC=98=E5=8C=96=E7=81=B5=E6=B4=BB?= =?UTF-8?q?=E8=84=B1=E6=95=8F=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/core/utils/DesensitizedUtils.java | 18 +++++------------- 1 file changed, 5 insertions(+), 13 deletions(-) diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/utils/DesensitizedUtils.java b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/utils/DesensitizedUtils.java index dafd8e6c4..698fd6455 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/utils/DesensitizedUtils.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/utils/DesensitizedUtils.java @@ -34,21 +34,13 @@ public class DesensitizedUtils extends DesensitizedUtil { return StrUtil.repeat('*', len); } - // 可用长度 = 总长度 - 前后可见长度 - int available = len - prefixVisible - suffixVisible; - - // 中间掩码长度不能超过可用长度 - int actualMaskLength = Math.min(maskLength, available); - - // 剩余字符尽量显示在中间掩码旁 - int remaining = available - actualMaskLength; - String middleChars = remaining > 0 ? value.substring(prefixVisible, prefixVisible + remaining) : ""; - String middleMask = StrUtil.repeat('*', actualMaskLength); - String prefix = value.substring(0, prefixVisible); String suffix = value.substring(len - suffixVisible); - - return prefix + middleChars + middleMask + suffix; + // 中间可用于脱敏的最大长度 + int middleLen = len - prefixVisible - suffixVisible; + // 实际掩码长度 至少脱敏 1 位 + int actualMaskLen = Math.max(1, Math.min(maskLength, middleLen)); + return prefix + StrUtil.repeat('*', actualMaskLen) + suffix; } }