Browse Source

fix: password 对称加密

Wren 1 year ago
parent
commit
6ee365da6c

+ 14 - 14
src/main/java/com/ichaoj/ams/constant/AmsConstant.java

@@ -20,22 +20,22 @@ public class AmsConstant {
      */
      */
     public static final String CACHE_ADDRESS_PREFIX = "ams:address";
     public static final String CACHE_ADDRESS_PREFIX = "ams:address";
 
 
-    public static String aesKey = HexUtil.encodeHexStr(SecureUtil.generateKey(SymmetricAlgorithm.AES.getValue()).getEncoded());
+    public static String aesKey;
     public static long aesUpdateTime = System.currentTimeMillis();
     public static long aesUpdateTime = System.currentTimeMillis();
 
 
-    public static void reloadAesKey() {
-        int updateKeySplit = 1000 * 60 * 30;
-        String currentKey = AmsConstant.aesKey;
-        if (System.currentTimeMillis() - aesUpdateTime > updateKeySplit) {
-            synchronized (AmsConstant.class) {
-                if (AmsConstant.aesKey.equals(currentKey)) {
-                    AmsConstant.aesKey = HexUtil.encodeHexStr(SecureUtil.generateKey(SymmetricAlgorithm.AES.getValue()).getEncoded());
-                    aesUpdateTime = System.currentTimeMillis();
-                    log.info("update aes key : {}", AmsConstant.aesKey);
-                }
-            }
-        }
-    }
+//    public static void reloadAesKey() {
+//        int updateKeySplit = 1000 * 60 * 30;
+//        String currentKey = AmsConstant.aesKey;
+//        if (System.currentTimeMillis() - aesUpdateTime > updateKeySplit) {
+//            synchronized (AmsConstant.class) {
+//                if (AmsConstant.aesKey.equals(currentKey)) {
+//                    AmsConstant.aesKey = HexUtil.encodeHexStr(SecureUtil.generateKey(SymmetricAlgorithm.AES.getValue()).getEncoded());
+//                    aesUpdateTime = System.currentTimeMillis();
+//                    log.info("update aes key : {}", AmsConstant.aesKey);
+//                }
+//            }
+//        }
+//    }
 
 
     public static final String WALLET_FILE_PATH =
     public static final String WALLET_FILE_PATH =
             StrUtil.format("{}home{}ams{}wallet{}", File.separator, File.separator, File.separator, File.separator);
             StrUtil.format("{}home{}ams{}wallet{}", File.separator, File.separator, File.separator, File.separator);

+ 0 - 7
src/main/java/com/ichaoj/ams/controller/UserController.java

@@ -36,12 +36,5 @@ public class UserController {
         return userFeignClient.queryUserInfoPage(publicPage);
         return userFeignClient.queryUserInfoPage(publicPage);
     }
     }
 
 
-    @GetMapping("/aes-key")
-    @Operation(summary = "获取对称加密密钥")
-    @AuthResource
-    public PublicResult<String> generateKey() {
-        AmsConstant.reloadAesKey();
-        return PublicResult.success(AmsConstant.aesKey);
-    }
 
 
 }
 }

+ 22 - 2
src/main/java/com/ichaoj/ams/task/NotifyTask.java

@@ -6,6 +6,7 @@ import cn.hutool.core.date.DatePattern;
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.date.LocalDateTimeUtil;
 import cn.hutool.core.date.LocalDateTimeUtil;
 import cn.hutool.core.thread.ThreadUtil;
 import cn.hutool.core.thread.ThreadUtil;
+import cn.hutool.core.util.CharUtil;
 import cn.hutool.core.util.CharsetUtil;
 import cn.hutool.core.util.CharsetUtil;
 import cn.hutool.core.util.HexUtil;
 import cn.hutool.core.util.HexUtil;
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.core.util.StrUtil;
@@ -27,6 +28,8 @@ import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.CharSet;
 import org.apache.commons.lang3.CharSet;
 import org.apache.commons.lang3.CharSetUtils;
 import org.apache.commons.lang3.CharSetUtils;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.NotNull;
+import org.springframework.boot.ApplicationArguments;
+import org.springframework.boot.ApplicationRunner;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Component;
 import org.springframework.stereotype.Component;
 
 
@@ -44,7 +47,7 @@ import java.util.Set;
 @Component
 @Component
 @RequiredArgsConstructor
 @RequiredArgsConstructor
 @Slf4j
 @Slf4j
-public class NotifyTask {
+public class NotifyTask implements ApplicationRunner {
 
 
     private final IAmsTradeRecordService tradeService;
     private final IAmsTradeRecordService tradeService;
 
 
@@ -53,7 +56,20 @@ public class NotifyTask {
     private final IEmailProvider emailProvider;
     private final IEmailProvider emailProvider;
     private final ParamTemplate paramTemplate;
     private final ParamTemplate paramTemplate;
 
 
-
+    @Scheduled(cron = "0 0 0 * * ?")
+    public void reloadAesKey() {
+        String dayFormat = DateUtil.format(new Date(), DatePattern.PURE_DATE_PATTERN);
+        byte[] byteDaysFor16 = new byte[16];
+        dayFormat = dayFormat + dayFormat;
+        char[] formatCharArray = dayFormat.toCharArray();
+        for (int i = 0; i < formatCharArray.length; i++) {
+            char c = formatCharArray[i];
+            byteDaysFor16[i]= (byte) Integer.parseInt(String.valueOf(c));
+        }
+        AmsConstant.aesKey = HexUtil.encodeHexStr(byteDaysFor16);
+        log.info("date: {}",dayFormat);
+        log.info("update aes key : {}", AmsConstant.aesKey);
+    }
 
 
     @XxlJob("ams_weekly_report")
     @XxlJob("ams_weekly_report")
     @SuppressWarnings("all")
     @SuppressWarnings("all")
@@ -173,4 +189,8 @@ public class NotifyTask {
     }
     }
 
 
 
 
+    @Override
+    public void run(ApplicationArguments args) throws Exception {
+        reloadAesKey();
+    }
 }
 }

+ 5 - 1
src/test/java/com/ichaoj/ams/script/zksync2/swap/ZksyncMuteSwapEthForUsdcScriptTest.java

@@ -51,7 +51,11 @@ class ZksyncMuteSwapEthForUsdcScriptTest {
     void hexTest() {
     void hexTest() {
         AmsConstant.aesKey = HexUtil.encodeHexStr(SecureUtil.generateKey(SymmetricAlgorithm.AES.getValue()).getEncoded());
         AmsConstant.aesKey = HexUtil.encodeHexStr(SecureUtil.generateKey(SymmetricAlgorithm.AES.getValue()).getEncoded());
         byte[] encoded = SecureUtil.generateKey(SymmetricAlgorithm.AES.getValue()).getEncoded();
         byte[] encoded = SecureUtil.generateKey(SymmetricAlgorithm.AES.getValue()).getEncoded();
-        SymmetricCrypto aes = new SymmetricCrypto(SymmetricAlgorithm.AES, HexUtil.decodeHex(AmsConstant.aesKey));
+        byte[] dateByte=new byte[]{
+                2,0,2,3,0,6,2,9,2,0,2,3,0,6,2,9
+        };
+
+        SymmetricCrypto aes = new SymmetricCrypto(SymmetricAlgorithm.AES, dateByte);
 //        SymmetricCrypto aes = new SymmetricCrypto(SymmetricAlgorithm.AES, encoded);
 //        SymmetricCrypto aes = new SymmetricCrypto(SymmetricAlgorithm.AES, encoded);
         String content = "password";
         String content = "password";
         //加密为16进制表示
         //加密为16进制表示