From f2acafda7a833564afe0907f951b6b6ec084d135 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BE=90=E6=99=93=E4=BC=9F?= Date: Tue, 14 Mar 2023 16:50:15 +0800 Subject: [PATCH 1/2] =?UTF-8?q?:bug:=20=E4=BF=AE=E5=A4=8D=E5=9C=A8JDK=2017?= =?UTF-8?q?=E7=9A=84=E7=8E=AF=E5=A2=83=E4=B8=8B=E6=97=A0sun=E7=9B=B8?= =?UTF-8?q?=E5=85=B3=E7=9A=84=E5=8C=85=201.=20=E4=BD=BF=E7=94=A8hutool?= =?UTF-8?q?=E6=9B=BF=E6=8D=A2sun=202.=20=E5=88=A0=E9=99=A4=E6=9C=AA?= =?UTF-8?q?=E4=BD=BF=E7=94=A8=E7=9A=84=E5=8C=85=E5=AF=BC=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../interceptor/SwaggerInterceptor.java | 4 +- .../request/StoreProductSearchRequest.java | 4 -- .../java/com/zbkj/common/utils/CrmebUtil.java | 57 ++++++++----------- 3 files changed, 26 insertions(+), 39 deletions(-) diff --git a/crmeb/crmeb-common/src/main/java/com/zbkj/common/interceptor/SwaggerInterceptor.java b/crmeb/crmeb-common/src/main/java/com/zbkj/common/interceptor/SwaggerInterceptor.java index f4b5739a..0660f318 100644 --- a/crmeb/crmeb-common/src/main/java/com/zbkj/common/interceptor/SwaggerInterceptor.java +++ b/crmeb/crmeb-common/src/main/java/com/zbkj/common/interceptor/SwaggerInterceptor.java @@ -1,12 +1,12 @@ package com.zbkj.common.interceptor; +import cn.hutool.core.codec.Base64; import org.springframework.core.io.Resource; import org.springframework.core.io.support.PathMatchingResourcePatternResolver; import org.springframework.core.io.support.ResourcePatternResolver; import org.springframework.util.AntPathMatcher; import org.springframework.util.FileCopyUtils; import org.springframework.web.servlet.handler.HandlerInterceptorAdapter; -import sun.misc.BASE64Decoder; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -52,7 +52,7 @@ public class SwaggerInterceptor extends HandlerInterceptorAdapter { public boolean httpBasicAuth(String authorization) throws IOException { if(check){ if (authorization != null && authorization.split(" ").length == 2) { - String userAndPass = new String(new BASE64Decoder().decodeBuffer(authorization.split(" ")[1])); + String userAndPass = Base64.decodeStr(authorization.split(" ")[1]); String username = userAndPass.split(":").length == 2 ? userAndPass.split(":")[0] : null; String password = userAndPass.split(":").length == 2 ? userAndPass.split(":")[1] : null; return this.username.equals(username) && this.password.equals(password); diff --git a/crmeb/crmeb-common/src/main/java/com/zbkj/common/request/StoreProductSearchRequest.java b/crmeb/crmeb-common/src/main/java/com/zbkj/common/request/StoreProductSearchRequest.java index d375514f..5cdc5557 100644 --- a/crmeb/crmeb-common/src/main/java/com/zbkj/common/request/StoreProductSearchRequest.java +++ b/crmeb/crmeb-common/src/main/java/com/zbkj/common/request/StoreProductSearchRequest.java @@ -1,7 +1,6 @@ package com.zbkj.common.request; import com.baomidou.mybatisplus.annotation.TableName; -import com.sun.org.apache.xpath.internal.operations.Bool; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -9,11 +8,8 @@ import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; import org.hibernate.validator.constraints.Range; -import javax.validation.constraints.Max; -import javax.validation.constraints.Min; import javax.validation.constraints.NotNull; import java.io.Serializable; -import java.util.List; /** * 商品表 diff --git a/crmeb/crmeb-common/src/main/java/com/zbkj/common/utils/CrmebUtil.java b/crmeb/crmeb-common/src/main/java/com/zbkj/common/utils/CrmebUtil.java index 8d04e596..0964b10a 100644 --- a/crmeb/crmeb-common/src/main/java/com/zbkj/common/utils/CrmebUtil.java +++ b/crmeb/crmeb-common/src/main/java/com/zbkj/common/utils/CrmebUtil.java @@ -1,23 +1,19 @@ package com.zbkj.common.utils; +import cn.hutool.core.codec.Base64; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.crypto.SecureUtil; +import cn.hutool.crypto.symmetric.DES; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.zbkj.common.constants.Constants; -import com.zbkj.common.exception.CrmebException; import org.apache.commons.lang3.StringUtils; -import javax.crypto.Cipher; -import javax.crypto.SecretKey; -import javax.crypto.spec.SecretKeySpec; import javax.servlet.http.HttpServletRequest; import java.io.UnsupportedEncodingException; import java.math.BigDecimal; import java.nio.charset.StandardCharsets; -import java.security.Key; -import java.security.Security; import java.text.NumberFormat; import java.util.*; import java.util.regex.Matcher; @@ -37,43 +33,26 @@ import java.util.regex.Pattern; */ public class CrmebUtil { - public static String encryptPassword(String pwd, String key){ - try { - Security.addProvider(new com.sun.crypto.provider.SunJCE()); - Key _key = getDESSercretKey(key); - Cipher cipher = Cipher.getInstance("DES"); - cipher.init(Cipher.ENCRYPT_MODE, _key); - byte[] data = pwd.getBytes(StandardCharsets.UTF_8); - byte[] result = cipher.doFinal(data); - return new sun.misc.BASE64Encoder().encode(result); - }catch (Exception e){ - throw new CrmebException("密码处理异常"); - } + public static String encryptPassword(String pwd, String key) { + DES des = new DES(getDESSercretKey(key)); + byte[] result = des.encrypt(pwd); + return Base64.encode(result); } /** * 解密密码 */ - public static String decryptPassowrd(String pwd, String key) - throws Exception { - Security.addProvider(new com.sun.crypto.provider.SunJCE()); - Key aKey = getDESSercretKey(key); - Cipher cipher = Cipher.getInstance("DES"); - cipher.init(Cipher.DECRYPT_MODE, aKey); - - byte[] data = new sun.misc.BASE64Decoder().decodeBuffer(pwd); - byte[] result = cipher.doFinal(data); - - return new String(result, StandardCharsets.UTF_8); + public static String decryptPassowrd(String pwd, String key) { + DES des = new DES(getDESSercretKey(key)); + return des.decryptStr(pwd); } /** * 获得DES加密秘钥 * @param key * @return - * @throws UnsupportedEncodingException */ - public static SecretKey getDESSercretKey(String key) throws UnsupportedEncodingException { + public static byte[] getDESSercretKey(String key) { byte[] result = new byte[8]; byte[] keys = null; keys = key.getBytes(StandardCharsets.UTF_8); @@ -84,7 +63,7 @@ public class CrmebUtil { result[i] = 0x01; } } - return new SecretKeySpec(result, "DES"); + return result; } /** @@ -135,7 +114,19 @@ public class CrmebUtil { */ public static void main(String[] args) throws Exception { // System.out.println(encryptPassword("123456", "admin")); - System.out.println(decryptPassowrd("", "")); +// System.out.println(decryptPassowrd("", "")); + + String key = "123456"; + String data = "中国123ABCabc"; + System.out.println("原始数据:" + data); + String encryptPassword = encryptPassword(data, key); + System.out.println("加密结果:" + encryptPassword); + String decryptPassowrd = decryptPassowrd(encryptPassword, key); + System.out.println("解密结果:" + decryptPassowrd); + // 执行结果如下: + // 原始数据:中国123ABCabc + // 加密结果:5JNGj04iE/XUuTZM75zMrA== + // 解密结果:中国123ABCabc } /** From a25c771991fa1c178e455e555089ae0f5fc6c980 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BE=90=E6=99=93=E4=BC=9F?= Date: Wed, 29 Mar 2023 10:16:14 +0800 Subject: [PATCH 2/2] =?UTF-8?q?:bulb:=20=E5=8A=A0=E8=A7=A3=E5=AF=86?= =?UTF-8?q?=E8=A1=A5=E5=85=85=E8=AF=B4=E6=98=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/zbkj/common/utils/CrmebUtil.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/crmeb/crmeb-common/src/main/java/com/zbkj/common/utils/CrmebUtil.java b/crmeb/crmeb-common/src/main/java/com/zbkj/common/utils/CrmebUtil.java index 9096fb50..e315c249 100644 --- a/crmeb/crmeb-common/src/main/java/com/zbkj/common/utils/CrmebUtil.java +++ b/crmeb/crmeb-common/src/main/java/com/zbkj/common/utils/CrmebUtil.java @@ -127,7 +127,10 @@ public class CrmebUtil { // 原始数据:中国123ABCabc // 加密结果:5JNGj04iE/XUuTZM75zMrA== // 解密结果:中国123ABCabc + System.out.println(encryptPassword("crmeb@123456", "18292417675")); + // 执行结果:f6mcpGQ8NEmwbab2TlkpUg== + // 与 SQL 中的数据一致 } /**