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);
+ }
+}