From 11d1cb198f68c84c9987c0bc46d166e2f4d45a37 Mon Sep 17 00:00:00 2001 From: liuzhaotian Date: Thu, 6 Mar 2025 14:54:24 +0800 Subject: [PATCH] =?UTF-8?q?token=E7=AE=A1=E7=90=86=EF=BC=8Ctoken=E7=94=9F?= =?UTF-8?q?=E6=88=90=E8=A7=84=E5=88=99=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tokenconfig/TokenConfigServiceImpl.java | 35 +++++++++++++++---- 1 file changed, 28 insertions(+), 7 deletions(-) diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/tokenconfig/TokenConfigServiceImpl.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/tokenconfig/TokenConfigServiceImpl.java index e3f2fda69..46071e64f 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/tokenconfig/TokenConfigServiceImpl.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/tokenconfig/TokenConfigServiceImpl.java @@ -60,7 +60,7 @@ public class TokenConfigServiceImpl implements TokenConfigService{ @Resource private JwtConfig jwtConfig; - + private static final String FIELD_IMES = "imes-"; @Override public PageResult getTokenConfigPage(TokenConfigPageReqVO pageReqVO) { @@ -208,7 +208,12 @@ public class TokenConfigServiceImpl implements TokenConfigService{ @Override public Long checkTokenConfig(String token) { - TokenConfigDO tokenConfigDO = tokenConfigMapper.selectByToken(token); + String substring = token.substring(0, 5); + if(!FIELD_IMES.equals(substring)){ + throw exception(TOKEN_DATA_ERROR); + } + + TokenConfigDO tokenConfigDO = tokenConfigMapper.selectByToken(token.substring(5)); if(tokenConfigDO == null){ throw exception(TOKEN_CONFIG_NOT_EXISTS); @@ -243,7 +248,7 @@ public class TokenConfigServiceImpl implements TokenConfigService{ TokenConfigDO tokenConfigDO = validateTokenConfigExists(id); - return tokenConfigDO.getAppToken(); + return FIELD_IMES+tokenConfigDO.getAppToken(); } @@ -285,14 +290,30 @@ public class TokenConfigServiceImpl implements TokenConfigService{ claims.put("organId", organId); claims.put("mobile", mobile); claims.put("appType",appType); + claims.put("nowTime",System.currentTimeMillis()); String token = generateToken(claims, base64SecretKey); try { - MessageDigest digest = MessageDigest.getInstance("SHA-256"); - byte[] hash = digest.digest(token.getBytes()); + // 使用 SHA-256 处理 生成的 token + MessageDigest shaDigest = MessageDigest.getInstance("SHA-256"); + byte[] hash = shaDigest.digest(token.getBytes()); - token = Base64.getEncoder().encodeToString(hash); + token = Base64.getEncoder().encodeToString(hash).toLowerCase(); + + // 使用 MD5 对 token 进行二次处理 + MessageDigest md = MessageDigest.getInstance("MD5"); + byte[] md5Digest = md.digest(token.getBytes()); + + StringBuilder hexString = new StringBuilder(); + for (byte b : md5Digest) { + String hex = Integer.toHexString(0xff & b); + if (hex.length() == 1) { + hexString.append('0'); // 确保转换后的字符串是两位 + } + hexString.append(hex); + } + token = hexString.toString(); }catch (NoSuchAlgorithmException e){ @@ -309,7 +330,7 @@ public class TokenConfigServiceImpl implements TokenConfigService{ public static String maskString(String input) { int length = input.length(); - return input.substring(0, 4) + "*".repeat(length - 8) + input.substring(length - 4); + return FIELD_IMES+input.substring(0, 8) + "*".repeat(length - 8) + input.substring(length - 8); }