bihuisong пре 1 година
родитељ
комит
b69185200f

+ 3 - 3
ruoyi-admin/src/main/java/com/ruoyi/web/controller/sm4/SM4Utils.java

@@ -11,13 +11,13 @@ import java.util.regex.Pattern;
  */
 public class SM4Utils {
     //密钥
-    public String secretKey = "";
+    public String secretKey = "C97E76AF40C82627E4BDF23B2DB9D476";
     //向量
-    public String iv = "";
+    public String iv = "F15E0B726E1F7A3AD121D7D7546C4E25";
     //声明密钥和向量是否是32长度的十六进制的字符串,
     //如果true则需要设置密钥向量都是十六进制的32长度字符串。
     // Util.byteToHex("b7b3gSMFWd9a67i1".getBytes())
-    public boolean hexString = false;
+    public boolean hexString = true;
 
     public SM4Utils() {
     }

+ 3 - 4
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysSecretProjectController.java

@@ -16,6 +16,7 @@ import com.ruoyi.system.domain.dto.SysSecretProjectDTO;
 import com.ruoyi.system.mapper.SysProjectMapper;
 import com.ruoyi.system.mapper.SysSecretProjectMapper;
 import com.ruoyi.system.service.ISysProjectService;
+import com.ruoyi.web.controller.sm4.SM4Utils;
 import com.ruoyi.web.utils.ClipboardUtil;
 import com.ruoyi.web.utils.JWTExample;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -113,23 +114,21 @@ public class SysSecretProjectController extends BaseController {
 
     @PostMapping("/authority")
     public R authority(@RequestBody JSONObject json) throws ParseException {
+        SM4Utils sm4 = new SM4Utils();
         Map map = new HashMap<>();
         SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
         // 验证和解析JWT
-        String secretKey = json.get("secretKey").toString();
+        String secretKey = sm4.decryptData_CBC(json.get("secretKey").toString());
         // TODO: 2023/11/23 解密 secretKey
         if (JWTExample.validateJWT(secretKey)) {
-            String str = JWTExample.parseJWT(json.get("secretKey").toString());
             SysSecretProject sysSecretProject = sysSecretProjectMapper.selectBaseBySecretKey(secretKey);
             Date now = new Date();
             Date date = dateFormat.parse(sysSecretProject.getOverdueDate().toString());
             long seconds = (date.getTime() - now.getTime()) / 1000;
             map.put("overdueDate", seconds);
             map.put("isOverdue", true);
-//            System.out.println("解析到的项目名称:" + str);
         } else {
             map.put("isOverdue", false);
-            System.out.println("JWT验证失败");
         }
         return R.ok(map);
     }