From 78c91d0733ed359957a18db05930977eca75b5e5 Mon Sep 17 00:00:00 2001 From: MichelleChung <1242874891@qq.com> Date: 星期一, 27 十一月 2023 10:56:59 +0800 Subject: [PATCH] !451 响应加密功能 * update 优化调整加解密判断逻辑, 避免 NPE ; * rollback 回滚错误提交, 保留加密组件开关 ; * add 新增注解 @ApiEncrypt 用于校验接口加解密 ; * add 新增 EncryptResponseBodyWrapper 加密响应参数包装类 ; --- ruoyi-common/ruoyi-common-encrypt/src/main/java/org/dromara/common/encrypt/core/encryptor/Sm2Encryptor.java | 15 ++++++--------- 1 files changed, 6 insertions(+), 9 deletions(-) diff --git a/ruoyi-common/ruoyi-common-encrypt/src/main/java/org/dromara/common/encrypt/core/encryptor/Sm2Encryptor.java b/ruoyi-common/ruoyi-common-encrypt/src/main/java/org/dromara/common/encrypt/core/encryptor/Sm2Encryptor.java index c728cf8..aec5d82 100644 --- a/ruoyi-common/ruoyi-common-encrypt/src/main/java/org/dromara/common/encrypt/core/encryptor/Sm2Encryptor.java +++ b/ruoyi-common/ruoyi-common-encrypt/src/main/java/org/dromara/common/encrypt/core/encryptor/Sm2Encryptor.java @@ -1,13 +1,10 @@ package org.dromara.common.encrypt.core.encryptor; -import cn.hutool.core.codec.Base64; -import cn.hutool.crypto.SmUtil; -import cn.hutool.crypto.asymmetric.KeyType; -import cn.hutool.crypto.asymmetric.SM2; import org.dromara.common.core.utils.StringUtils; import org.dromara.common.encrypt.core.EncryptContext; import org.dromara.common.encrypt.enumd.AlgorithmType; import org.dromara.common.encrypt.enumd.EncodeType; +import org.dromara.common.encrypt.utils.EncryptUtils; /** * sm2绠楁硶瀹炵幇 @@ -17,7 +14,7 @@ */ public class Sm2Encryptor extends AbstractEncryptor { - private final SM2 sm2; + private final EncryptContext context; public Sm2Encryptor(EncryptContext context) { super(context); @@ -26,7 +23,7 @@ if (StringUtils.isAnyEmpty(privateKey, publicKey)) { throw new IllegalArgumentException("SM2鍏閽ュ潎闇�瑕佹彁渚涳紝鍏挜鍔犲瘑锛岀閽ヨВ瀵嗐��"); } - this.sm2 = SmUtil.sm2(Base64.decode(privateKey), Base64.decode(publicKey)); + this.context = context; } /** @@ -46,9 +43,9 @@ @Override public String encrypt(String value, EncodeType encodeType) { if (encodeType == EncodeType.HEX) { - return sm2.encryptHex(value, KeyType.PublicKey); + return EncryptUtils.encryptBySm2Hex(value, context.getPublicKey()); } else { - return sm2.encryptBase64(value, KeyType.PublicKey); + return EncryptUtils.encryptBySm2(value, context.getPublicKey()); } } @@ -59,6 +56,6 @@ */ @Override public String decrypt(String value) { - return this.sm2.decryptStr(value, KeyType.PrivateKey); + return EncryptUtils.decryptBySm2(value, context.getPrivateKey()); } } -- Gitblit v1.9.3