From ca6337aeb93de5dc344449b30208e3bd11785a33 Mon Sep 17 00:00:00 2001 From: pengjie <17373303529@163.com> Date: Fri, 4 Aug 2023 10:44:23 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9B=BD=E5=AF=86=E7=AE=97=E6=B3=95=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 9 ++- src/main/java/com/zhgd/mybatis/Aes.java | 18 +++++- .../admin/SystemUserAuthController.java | 4 +- .../service/impl/EnterpriseServiceImpl.java | 4 +- .../service/impl/GovernmentServiceImpl.java | 9 ++- .../service/impl/ProjectServiceImpl.java | 3 +- .../impl/InvestmentApplyServiceImpl.java | 4 ++ src/main/java/com/zhgd/xmgl/util/Sm4Util.java | 58 +++++++++++++++++++ 8 files changed, 97 insertions(+), 12 deletions(-) create mode 100644 src/main/java/com/zhgd/xmgl/util/Sm4Util.java diff --git a/pom.xml b/pom.xml index 3a174fc..1b006a2 100644 --- a/pom.xml +++ b/pom.xml @@ -457,12 +457,17 @@ cn.hutool hutool-all - 5.8.4 + 5.8.5 cn.hutool hutool-core - 5.8.4 + 5.8.5 + + + org.bouncycastle + bcprov-jdk15to18 + 1.64 org.apache.tomcat diff --git a/src/main/java/com/zhgd/mybatis/Aes.java b/src/main/java/com/zhgd/mybatis/Aes.java index 222de9f..e002740 100644 --- a/src/main/java/com/zhgd/mybatis/Aes.java +++ b/src/main/java/com/zhgd/mybatis/Aes.java @@ -1,5 +1,8 @@ package com.zhgd.mybatis; +import cn.hutool.core.util.CharsetUtil; +import cn.hutool.crypto.SmUtil; +import cn.hutool.crypto.symmetric.SymmetricCrypto; import lombok.extern.slf4j.Slf4j; import org.apache.commons.codec.binary.Base64; @@ -115,9 +118,20 @@ public class Aes { } public static void main(String[] args) { - String content = "RaxMRsBUfFDjz_U_7LB_TJHqPNDVlpiOtkdqhZMTDoW3bHbfHnQ8_wuKIcVJemVn".replace("-", "+").replace("_", "/"); +// String content = "RaxMRsBUfFDjz_U_7LB_TJHqPNDVlpiOtkdqhZMTDoW3bHbfHnQ8_wuKIcVJemVn".replace("-", "+").replace("_", "/"); // System.out.println("RaxMRsBUfFDjz/U/7LB/TBRIDE/1I6ZZ9kmQFWqgLCID42evqzeC8kpDSd3GM7YB".replace("+", "-").replace("/", "_")); // System.out.println(encrypt("{\"uid\":\"test\",\"exp\":1686559180478}", "ssologin66!@#$%^")); - System.out.println(decrypt(content, "ssologin66!@#$%^")); +// System.out.println(decrypt(content, "ssologin66!@#$%^")); + String content = "123"; + // key必须是16位 + String key="1234567890123456"; + SymmetricCrypto sm4Crypto = SmUtil.sm4(key.getBytes()); + String encryptHex = sm4Crypto.encryptHex(content); + System.out.println("原始明文:" + content); + System.out.println("加密结果:" + encryptHex); + + String decryptStr = sm4Crypto.decryptStr(encryptHex, CharsetUtil.CHARSET_UTF_8); + System.out.println("解密结果:" + decryptStr); + } } \ No newline at end of file diff --git a/src/main/java/com/zhgd/xmgl/modules/basicdata/controller/admin/SystemUserAuthController.java b/src/main/java/com/zhgd/xmgl/modules/basicdata/controller/admin/SystemUserAuthController.java index d5b48a6..f7c4b2d 100644 --- a/src/main/java/com/zhgd/xmgl/modules/basicdata/controller/admin/SystemUserAuthController.java +++ b/src/main/java/com/zhgd/xmgl/modules/basicdata/controller/admin/SystemUserAuthController.java @@ -6,7 +6,6 @@ import com.qiwenshare.common.result.RestResult; import com.zhgd.annotation.OperLog; import com.zhgd.jeecg.common.api.vo.Result; import com.zhgd.jeecg.common.constant.CommonConstant; -import com.zhgd.mybatis.Aes; import com.zhgd.xmgl.modules.basicdata.dto.SystemUserAuthDto; import com.zhgd.xmgl.modules.basicdata.entity.Government; import com.zhgd.xmgl.modules.basicdata.entity.SystemUser; @@ -20,6 +19,7 @@ import com.zhgd.xmgl.security.JwtTokenProvider; import com.zhgd.xmgl.security.SecurityUser; import com.zhgd.xmgl.security.SecurityUtil; import com.zhgd.xmgl.util.CommonUtil; +import com.zhgd.xmgl.util.Sm4Util; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; @@ -122,7 +122,7 @@ public class SystemUserAuthController { if (!CommonUtil.checkStrongPwd(password)) { return Result.error("密码必须包含数字、大小写字母、特殊符号且大于8位"); } - boolean flag = systemUserService.updatePassword(user.getUserId(), Aes.encrypt(password)); + boolean flag = systemUserService.updatePassword(user.getUserId(), Sm4Util.encrypt(password)); if (flag) { return Result.ok(); } diff --git a/src/main/java/com/zhgd/xmgl/modules/basicdata/service/impl/EnterpriseServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/basicdata/service/impl/EnterpriseServiceImpl.java index d3d1d19..6d551f4 100644 --- a/src/main/java/com/zhgd/xmgl/modules/basicdata/service/impl/EnterpriseServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/basicdata/service/impl/EnterpriseServiceImpl.java @@ -7,7 +7,6 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.zhgd.jeecg.common.util.PageUtil; -import com.zhgd.mybatis.Aes; import com.zhgd.xmgl.modules.basicdata.entity.*; import com.zhgd.xmgl.modules.basicdata.mapper.EnterpriseMapper; import com.zhgd.xmgl.modules.basicdata.mapper.ProjectMapper; @@ -18,6 +17,7 @@ import com.zhgd.xmgl.modules.basicdata.service.ISystemUserService; import com.zhgd.xmgl.modules.basicdata.vo.EnterpriseVo; import com.zhgd.xmgl.security.SecurityUtil; import com.zhgd.xmgl.util.CommonUtil; +import com.zhgd.xmgl.util.Sm4Util; import org.apache.commons.collections.MapUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -96,7 +96,7 @@ public class EnterpriseServiceImpl extends ServiceImpl impl if (flag) { SystemUser systemUser = new SystemUser(); systemUser.setAccount(projectVo.getAccount()); - systemUser.setPassword(Aes.encrypt(projectVo.getPassword())); + systemUser.setPassword(Sm4Util.encrypt(projectVo.getPassword())); systemUser.setShowPassword(projectVo.getPassword()); systemUser.setIsManager(true); systemUser.setState(projectVo.getState()); diff --git a/src/main/java/com/zhgd/xmgl/modules/safety/service/impl/InvestmentApplyServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/safety/service/impl/InvestmentApplyServiceImpl.java index e54a64d..3410e23 100644 --- a/src/main/java/com/zhgd/xmgl/modules/safety/service/impl/InvestmentApplyServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/safety/service/impl/InvestmentApplyServiceImpl.java @@ -49,6 +49,7 @@ public class InvestmentApplyServiceImpl extends ServiceImpl pageList(Map map) { String name = MapUtils.getString(map, "name"); String projectSn = MapUtils.getString(map, "projectSn"); + String engineeringSn = MapUtils.getString(map, "engineeringSn"); QueryWrapper wrapper = Wrappers.query(); if (StringUtils.isNotBlank(name)) { wrapper.like("a.name", name); @@ -56,6 +57,9 @@ public class InvestmentApplyServiceImpl extends ServiceImpl page = PageUtil.getPage(map); return baseMapper.pageList(page, wrapper); } diff --git a/src/main/java/com/zhgd/xmgl/util/Sm4Util.java b/src/main/java/com/zhgd/xmgl/util/Sm4Util.java new file mode 100644 index 0000000..8606a21 --- /dev/null +++ b/src/main/java/com/zhgd/xmgl/util/Sm4Util.java @@ -0,0 +1,58 @@ +package com.zhgd.xmgl.util; + +import cn.hutool.core.util.CharsetUtil; +import cn.hutool.crypto.SmUtil; +import cn.hutool.crypto.symmetric.SymmetricCrypto; +import lombok.extern.slf4j.Slf4j; +@Slf4j +public class Sm4Util { + + public Sm4Util() { + } + + private static final String KEY = "ZHGDzhdgJXJADMIN"; + + /** + * 加密 + * + * @param content + * @return + */ + public static String encrypt(String content) { + return encrypt(content, KEY); + } + + /** + * 解密 + * + * @param content + * @return + */ + public static String decrypt(String content) { + return decrypt(content, KEY); + } + + /** + * 加密 + * + * @param content 需要加密的内容 + * @param key 加密密码 + * @return + */ + public static String encrypt(String content, String key) { + SymmetricCrypto sm4Crypto = SmUtil.sm4(key.getBytes()); + return sm4Crypto.encryptHex(content); + } + + /** + * AES(256)解密 + * + * @param content 待解密内容 + * @param key 解密密钥 + * @return 解密之后 + */ + public static String decrypt(String content, String key) { + SymmetricCrypto sm4Crypto = SmUtil.sm4(key.getBytes()); + return sm4Crypto.decryptStr(content, CharsetUtil.CHARSET_UTF_8); + } +}