From 86a8f5a700a19d8e55da5f5f0d5edd6b1284934f Mon Sep 17 00:00:00 2001
From: 疯狂的狮子Li <15040126243@163.com>
Date: 星期一, 07 八月 2023 12:35:34 +0800
Subject: [PATCH] update 优化 加密实现 使用 EncryptUtils 统一处理

---
 ruoyi-common/ruoyi-common-encrypt/src/main/java/org/dromara/common/encrypt/utils/EncryptUtils.java |   68 ++++++++++++++++++++++++++++++++++
 1 files changed, 68 insertions(+), 0 deletions(-)

diff --git a/ruoyi-common/ruoyi-common-encrypt/src/main/java/org/dromara/common/encrypt/utils/EncryptUtils.java b/ruoyi-common/ruoyi-common-encrypt/src/main/java/org/dromara/common/encrypt/utils/EncryptUtils.java
index 3504573..8e34843 100644
--- a/ruoyi-common/ruoyi-common-encrypt/src/main/java/org/dromara/common/encrypt/utils/EncryptUtils.java
+++ b/ruoyi-common/ruoyi-common-encrypt/src/main/java/org/dromara/common/encrypt/utils/EncryptUtils.java
@@ -68,6 +68,25 @@
     }
 
     /**
+     * AES鍔犲瘑
+     *
+     * @param data     寰呰В瀵嗘暟鎹�
+     * @param password 绉橀挜瀛楃涓�
+     * @return 鍔犲瘑鍚庡瓧绗︿覆, 閲囩敤Hex缂栫爜
+     */
+    public static String encryptByAesHex(String data, String password) {
+        if (StrUtil.isBlank(password)) {
+            throw new IllegalArgumentException("AES闇�瑕佷紶鍏ョ閽ヤ俊鎭�");
+        }
+        // aes绠楁硶鐨勭閽ヨ姹傛槸16浣嶃��24浣嶃��32浣�
+        int[] array = {16, 24, 32};
+        if (!ArrayUtil.contains(array, password.length())) {
+            throw new IllegalArgumentException("AES绉橀挜闀垮害瑕佹眰涓�16浣嶃��24浣嶃��32浣�");
+        }
+        return SecureUtil.aes(password.getBytes(StandardCharsets.UTF_8)).encryptHex(data, StandardCharsets.UTF_8);
+    }
+
+    /**
      * AES瑙e瘑
      *
      * @param data     寰呰В瀵嗘暟鎹�
@@ -103,6 +122,25 @@
             throw new IllegalArgumentException("SM4绉橀挜闀垮害瑕佹眰涓�16浣�");
         }
         return SmUtil.sm4(password.getBytes(StandardCharsets.UTF_8)).encryptBase64(data, StandardCharsets.UTF_8);
+    }
+
+    /**
+     * sm4鍔犲瘑
+     *
+     * @param data     寰呭姞瀵嗘暟鎹�
+     * @param password 绉橀挜瀛楃涓�
+     * @return 鍔犲瘑鍚庡瓧绗︿覆, 閲囩敤Base64缂栫爜
+     */
+    public static String encryptBySm4Hex(String data, String password) {
+        if (StrUtil.isBlank(password)) {
+            throw new IllegalArgumentException("SM4闇�瑕佷紶鍏ョ閽ヤ俊鎭�");
+        }
+        // sm4绠楁硶鐨勭閽ヨ姹傛槸16浣嶉暱搴�
+        int sm4PasswordLength = 16;
+        if (sm4PasswordLength != password.length()) {
+            throw new IllegalArgumentException("SM4绉橀挜闀垮害瑕佹眰涓�16浣�");
+        }
+        return SmUtil.sm4(password.getBytes(StandardCharsets.UTF_8)).encryptHex(data, StandardCharsets.UTF_8);
     }
 
     /**
@@ -153,6 +191,21 @@
     }
 
     /**
+     * sm2鍏挜鍔犲瘑
+     *
+     * @param data      寰呭姞瀵嗘暟鎹�
+     * @param publicKey 鍏挜
+     * @return 鍔犲瘑鍚庡瓧绗︿覆, 閲囩敤Hex缂栫爜
+     */
+    public static String encryptBySm2Hex(String data, String publicKey) {
+        if (StrUtil.isBlank(publicKey)) {
+            throw new IllegalArgumentException("SM2闇�瑕佷紶鍏ュ叕閽ヨ繘琛屽姞瀵�");
+        }
+        SM2 sm2 = SmUtil.sm2(null, publicKey);
+        return sm2.encryptHex(data, StandardCharsets.UTF_8, KeyType.PublicKey);
+    }
+
+    /**
      * sm2绉侀挜瑙e瘑
      *
      * @param data       寰呭姞瀵嗘暟鎹�
@@ -196,6 +249,21 @@
     }
 
     /**
+     * rsa鍏挜鍔犲瘑
+     *
+     * @param data      寰呭姞瀵嗘暟鎹�
+     * @param publicKey 鍏挜
+     * @return 鍔犲瘑鍚庡瓧绗︿覆, 閲囩敤Hex缂栫爜
+     */
+    public static String encryptByRsaHex(String data, String publicKey) {
+        if (StrUtil.isBlank(publicKey)) {
+            throw new IllegalArgumentException("RSA闇�瑕佷紶鍏ュ叕閽ヨ繘琛屽姞瀵�");
+        }
+        RSA rsa = SecureUtil.rsa(null, publicKey);
+        return rsa.encryptHex(data, StandardCharsets.UTF_8, KeyType.PublicKey);
+    }
+
+    /**
      * rsa绉侀挜瑙e瘑
      *
      * @param data       寰呭姞瀵嗘暟鎹�

--
Gitblit v1.9.3