国密算法修改

This commit is contained in:
pengjie 2023-08-04 10:44:23 +08:00
parent 8a924f53b1
commit ca6337aeb9
8 changed files with 97 additions and 12 deletions

View File

@ -457,12 +457,17 @@
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.8.4</version>
<version>5.8.5</version>
</dependency>
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-core</artifactId>
<version>5.8.4</version>
<version>5.8.5</version>
</dependency>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk15to18</artifactId>
<version>1.64</version>
</dependency>
<dependency>
<groupId>org.apache.tomcat</groupId>

View File

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

View File

@ -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();
}

View File

@ -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<EnterpriseMapper, Enterpr
if (flag) {
SystemUser systemUser = new SystemUser();
systemUser.setAccount(enterpriseVo.getAccount());
systemUser.setPassword(Aes.encrypt(enterpriseVo.getPassword()));
systemUser.setPassword(Sm4Util.encrypt(enterpriseVo.getPassword()));
systemUser.setShowPassword(enterpriseVo.getPassword());
systemUser.setRealName(enterpriseVo.getRealName());
systemUser.setIsManager(true);

View File

@ -7,9 +7,11 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
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.mybatis.Aes;
import com.zhgd.xmgl.modules.basicdata.dto.GovernmentDto;
import com.zhgd.xmgl.modules.basicdata.entity.*;
import com.zhgd.xmgl.modules.basicdata.entity.Enterprise;
import com.zhgd.xmgl.modules.basicdata.entity.Government;
import com.zhgd.xmgl.modules.basicdata.entity.Project;
import com.zhgd.xmgl.modules.basicdata.entity.SystemUser;
import com.zhgd.xmgl.modules.basicdata.mapper.EnterpriseMapper;
import com.zhgd.xmgl.modules.basicdata.mapper.GovernmentMapper;
import com.zhgd.xmgl.modules.basicdata.mapper.ProjectMapper;
@ -17,6 +19,7 @@ import com.zhgd.xmgl.modules.basicdata.mapper.SystemUserMapper;
import com.zhgd.xmgl.modules.basicdata.service.IGovernmentService;
import com.zhgd.xmgl.modules.basicdata.vo.GovernmentVo;
import com.zhgd.xmgl.util.CommonUtil;
import com.zhgd.xmgl.util.Sm4Util;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -79,7 +82,7 @@ public class GovernmentServiceImpl extends ServiceImpl<GovernmentMapper, Governm
SystemUser systemUser = new SystemUser();
systemUser.setRealName(governmentVo.getGovernmentName());
systemUser.setAccount(governmentVo.getAccount());
systemUser.setPassword(Aes.encrypt(governmentVo.getPassword()));
systemUser.setPassword(Sm4Util.encrypt(governmentVo.getPassword()));
systemUser.setShowPassword(governmentVo.getPassword());
systemUser.setCreateTime(new Date());
systemUser.setSn(government.getGovernmentSn());

View File

@ -23,6 +23,7 @@ import com.zhgd.xmgl.modules.basicdata.vo.ProjectVo;
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 org.apache.commons.collections.MapUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -96,7 +97,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> 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());

View File

@ -49,6 +49,7 @@ public class InvestmentApplyServiceImpl extends ServiceImpl<InvestmentApplyMappe
public Page<InvestmentApply> pageList(Map<String, Object> map) {
String name = MapUtils.getString(map, "name");
String projectSn = MapUtils.getString(map, "projectSn");
String engineeringSn = MapUtils.getString(map, "engineeringSn");
QueryWrapper<InvestmentApply> wrapper = Wrappers.<InvestmentApply>query();
if (StringUtils.isNotBlank(name)) {
wrapper.like("a.name", name);
@ -56,6 +57,9 @@ public class InvestmentApplyServiceImpl extends ServiceImpl<InvestmentApplyMappe
if (StringUtils.isNotBlank(projectSn)) {
wrapper.eq("a.project_sn", projectSn).eq("a.engineering_sn", "");
}
if (StringUtils.isNotBlank(engineeringSn)) {
wrapper.eq("a.engineering_sn", engineeringSn);
}
Page<InvestmentApply> page = PageUtil.getPage(map);
return baseMapper.pageList(page, wrapper);
}

View File

@ -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);
}
/**
* AES256解密
*
* @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);
}
}