From 565e8ac5039eb2c7c63695f9e3494ef00cb47185 Mon Sep 17 00:00:00 2001
From: guyue <1721849008@qq.com>
Date: 星期五, 18 七月 2025 15:15:23 +0800
Subject: [PATCH] 更改为传json

---
 src/main/java/com/linghu/utils/OpenCryptUtil.java |   18 ++++++++++++------
 1 files changed, 12 insertions(+), 6 deletions(-)

diff --git a/src/main/java/com/linghu/utils/OpenCryptUtil.java b/src/main/java/com/linghu/utils/OpenCryptUtil.java
index b48aea6..8bef420 100644
--- a/src/main/java/com/linghu/utils/OpenCryptUtil.java
+++ b/src/main/java/com/linghu/utils/OpenCryptUtil.java
@@ -3,19 +3,19 @@
 
 import cn.afocus.crypt.sign.UserSign;
 
-import cn.afocus.crypt.sign.UserSign;
 import com.alibaba.fastjson.JSON;
-import com.linghu.model.entity.User;
+import com.alibaba.fastjson.JSONObject;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Component;
 
 import javax.annotation.PostConstruct;
+import java.nio.charset.StandardCharsets;
 
 @Component
 public class OpenCryptUtil {
 
     // 加密密钥(从配置文件读取,避免硬编码)
-    @Value("${app.crypt.secret-key}") // 长度需符合算法要求(如AES-256需32位)
+    @Value("${crypt.secret}") // 长度需符合算法要求(如AES-256需32位)
     private String secret;
 
     // 初始化向量(CBC模式需要,可选)
@@ -36,8 +36,13 @@
         try {
             // 调用 open-crypt 的加密方法(根据实际API调整)
             //user转为 json
-            String json = JSON.toJSONString(user);
-            return UserSign.gen(json, "fY9tX7vX7qH5bN2cD8eM4xD2fH7uL4xM".getBytes());
+//            String json = JSON.toJSONString(user);
+            String secret ="fY9tX7vX7qH5bN2cD8eM4xD2fH7UL4xM";
+            JSONObject geoJSON = new JSONObject();
+            geoJSON.put("name",user);
+            String token = UserSign.gen(geoJSON.toJSONString(),secret.getBytes(StandardCharsets.UTF_8));
+            return token;
+//            return UserSign.gen(user, "fY9tX7vX7qH5bN2cD8eM4xD2fH7uL4xM".getBytes(StandardCharsets.UTF_8));
         } catch (Exception e) {
             throw new RuntimeException("加密失败:" + e.getMessage(), e);
         }
@@ -49,7 +54,8 @@
     public String decrypt(String token) {
         try {
             // 调用 open-crypt 的解密方法
-            return UserSign.decrypt(token, "fY9tX7vX7qH5bN2cD8eM4xD2fH7uL4xM".getBytes());
+            byte[] keyBytes = "fY9tX7vX7qH5bN2cD8eM4xD2fH7uL4xM".getBytes(StandardCharsets.UTF_8);
+            return UserSign.decrypt(token, keyBytes);
         } catch (Exception e) {
             throw new RuntimeException("解密失败:" + e.getMessage(), e);
         }

--
Gitblit v1.7.1