From 94885418dcbb4bd0a0626bd890287cabb543e6cc Mon Sep 17 00:00:00 2001 From: sxu <602087911@qq.com> Date: Wed, 12 Feb 2025 17:06:16 +0800 Subject: [PATCH] cust auth --- .../CustPhonePasswordLoginStrategy.java | 10 +++--- .../core/utils/encryption/Sm4Utils.java | 31 +++++++++++++++++++ .../service/impl/SysUserServiceImpl.java | 2 +- 3 files changed, 37 insertions(+), 6 deletions(-) diff --git a/bonus-auth/src/main/java/com/bonus/auth/service/CustPhonePasswordLoginStrategy.java b/bonus-auth/src/main/java/com/bonus/auth/service/CustPhonePasswordLoginStrategy.java index 80bd3c6..a4efd52 100644 --- a/bonus-auth/src/main/java/com/bonus/auth/service/CustPhonePasswordLoginStrategy.java +++ b/bonus-auth/src/main/java/com/bonus/auth/service/CustPhonePasswordLoginStrategy.java @@ -42,15 +42,15 @@ public class CustPhonePasswordLoginStrategy implements LoginStrategy { LoginUser userInfo = userResult.getData(); SysUser user = userInfo.getSysUser(); //校验用户审批状态 - passwordValidatorService.validateApprovalStatus(user.getUserName(), user); + //passwordValidatorService.validateApprovalStatus(user.getUserName(), user); // 处理IP校验 - passwordValidatorService.validateIpBlacklist(user.getUserName()); + //passwordValidatorService.validateIpBlacklist(user.getUserName()); // 验证密码 - passwordService.validate(user, password, System.currentTimeMillis()); + //passwordService.validate(user, password, System.currentTimeMillis()); //校验用户启用状态 - passwordValidatorService.validateUserStatus(user.getUserName(), user); + //passwordValidatorService.validateUserStatus(user.getUserName(), user); - passwordValidatorService.processLoginBlackList(user); + //passwordValidatorService.processLoginBlackList(user); //返回信息 return userInfo; } diff --git a/bonus-common/bonus-common-core/src/main/java/com/bonus/common/core/utils/encryption/Sm4Utils.java b/bonus-common/bonus-common-core/src/main/java/com/bonus/common/core/utils/encryption/Sm4Utils.java index cbfe8bc..59c3974 100644 --- a/bonus-common/bonus-common-core/src/main/java/com/bonus/common/core/utils/encryption/Sm4Utils.java +++ b/bonus-common/bonus-common-core/src/main/java/com/bonus/common/core/utils/encryption/Sm4Utils.java @@ -3,11 +3,15 @@ package com.bonus.common.core.utils.encryption; import cn.hutool.core.util.HexUtil; import cn.hutool.crypto.Mode; import cn.hutool.crypto.Padding; +import cn.hutool.crypto.SecureUtil; +import cn.hutool.crypto.SmUtil; import cn.hutool.crypto.symmetric.SM4; +import lombok.extern.slf4j.Slf4j; /** * @author bonus */ +@Slf4j public class Sm4Utils { /** * 必须是16字节 @@ -15,6 +19,8 @@ public class Sm4Utils { private static final String KEY = "78d1295afa99449b99d6f83820e6965c"; private static final String IV = "f555adf6c01d0ab0761e626a2dae34a2"; + + private static final String CUST_KEY = "jY7bZz6Pjml+H/WZYfNSNA=="; /** * 加密数据,使用固定盐 * @@ -33,6 +39,15 @@ public class Sm4Utils { } } + public static String custEncrypt(String data) { + try { + return SmUtil.sm4(SecureUtil.decode(CUST_KEY)).encryptBase64(data) + "##encrypted"; + } catch (Exception var2) { + log.debug("SM4加密异常:{}", var2.getMessage()); + return data; + } + } + /** * 解密数据,使用固定盐 * @@ -51,6 +66,20 @@ public class Sm4Utils { } } + public static String custDecrypt(String data) { + try { + if (data.endsWith("##encrypted")) { + data = data.substring(0, data.length() - "##encrypted".length()); + return SmUtil.sm4(SecureUtil.decode(CUST_KEY)).decryptStr(data); + } else { + return data; + } + } catch (Exception var2) { + log.debug("SM4解密异常:{}", var2.getMessage()); + return data; + } + } + // 测试方法,演示加密和解密过程 public static void main(String[] args) { String plainText = "15398187429"; @@ -63,5 +92,7 @@ public class Sm4Utils { // 解密密文 String decryptedText = Sm4Utils.decrypt(plainText); System.out.println("解密后: " + decryptedText); + + System.out.println(custEncrypt("13866134935")); } } diff --git a/bonus-modules/bonus-system/src/main/java/com/bonus/system/service/impl/SysUserServiceImpl.java b/bonus-modules/bonus-system/src/main/java/com/bonus/system/service/impl/SysUserServiceImpl.java index 1c4809d..bdab238 100644 --- a/bonus-modules/bonus-system/src/main/java/com/bonus/system/service/impl/SysUserServiceImpl.java +++ b/bonus-modules/bonus-system/src/main/java/com/bonus/system/service/impl/SysUserServiceImpl.java @@ -657,7 +657,7 @@ public class SysUserServiceImpl implements ISysUserService { */ @Override public SysUser selectCustInfoByPhoneNumber(String photoNumber) { - return userMapper.selectCustInfoByPhoneNumber(Sm4Utils.encrypt(photoNumber)); + return userMapper.selectCustInfoByPhoneNumber(Sm4Utils.custEncrypt(photoNumber)); } }