瀏覽代碼

Merge remote-tracking branch 'origin/main'

zhanghao 1 月之前
父節點
當前提交
22a8d166bb

+ 102 - 0
project-common/src/main/java/com/project/common/utils/AESUtil.java

@@ -0,0 +1,102 @@
+package com.project.common.utils;
+
+import lombok.SneakyThrows;
+import lombok.extern.slf4j.Slf4j;
+
+import javax.crypto.BadPaddingException;
+import javax.crypto.Cipher;
+import javax.crypto.IllegalBlockSizeException;
+import javax.crypto.NoSuchPaddingException;
+import javax.crypto.spec.IvParameterSpec;
+import javax.crypto.spec.SecretKeySpec;
+import java.security.InvalidAlgorithmParameterException;
+import java.security.InvalidKeyException;
+import java.security.NoSuchAlgorithmException;
+import java.util.Base64;
+
+@Slf4j
+public class AESUtil {
+	
+	/***
+     * key和iv值可以随机生成
+     */
+    private static String KEY = "X4RjV51wQxSxZHHQ";
+    private static String IV = "g49GarVwCTR6nBHQ";
+    
+    /***
+     * 加密
+     * @param  data 要加密的数据
+     * @return encrypt
+     */
+    public static String encrypt(String data) {
+        return encrypt(data, KEY, IV);
+    }
+
+    /***
+     * param data 需要解密的数据
+     * 调用desEncrypt()方法
+     */
+    public static String decrypt(String data) {
+        return decrypt(data, KEY, IV);
+    }
+
+    /**
+     * 加密方法
+     * @param data  要加密的数据
+     * @param key 加密key
+     * @param iv 加密iv
+     * @return 加密的结果
+
+     */
+    @SneakyThrows
+    private static String encrypt(String data, String key, String iv) {
+    	Cipher cipher = Cipher.getInstance("AES/CBC/NoPadding");
+        int blockSize = cipher.getBlockSize();
+
+        byte[] dataBytes = data.getBytes();
+        int plaintextLength = dataBytes.length;
+        if (plaintextLength % blockSize != 0) {
+            plaintextLength = plaintextLength + (blockSize - (plaintextLength % blockSize));
+        }
+
+        byte[] plaintext = new byte[plaintextLength];
+        System.arraycopy(dataBytes, 0, plaintext, 0, dataBytes.length);
+
+        SecretKeySpec keyspec = new SecretKeySpec(key.getBytes(), "AES");
+        IvParameterSpec ivspec = new IvParameterSpec(iv.getBytes());
+
+        cipher.init(Cipher.ENCRYPT_MODE, keyspec, ivspec);
+        byte[] encrypted = cipher.doFinal(plaintext);
+        
+        return Base64.getEncoder().encodeToString(encrypted);
+    }
+
+    /**
+     * 解密方法
+     * @param data 要解密的数据
+     * @param key  解密key
+     * @param iv 解密iv
+     * @return 解密的结果
+     * @throws NoSuchPaddingException 
+     * @throws NoSuchAlgorithmException 
+     * @throws InvalidAlgorithmParameterException 
+     * @throws InvalidKeyException 
+     * @throws BadPaddingException 
+     * @throws IllegalBlockSizeException 
+     */
+    public static String decrypt(String data, String key, String iv) {
+    	byte[] encrypted1 = Base64.getDecoder().decode(data);
+        try {
+        	Cipher cipher = Cipher.getInstance("AES/CBC/NoPadding");
+            SecretKeySpec keySpec = new SecretKeySpec(key.getBytes(), "AES");
+            IvParameterSpec ivSpec = new IvParameterSpec(iv.getBytes());
+			cipher.init(Cipher.DECRYPT_MODE, keySpec, ivSpec);
+			byte[] original = cipher.doFinal(encrypted1);
+	        return new String(original).trim();
+		} catch (Exception e) {
+			log.error("decrypt exception", e);
+		}
+		return "";
+    }
+
+}

+ 7 - 0
project-framework/src/main/java/com/project/framework/web/service/SysLoginService.java

@@ -72,6 +72,13 @@ public class SysLoginService {
         if (captchaEnabled) {
             validateCaptcha(username, code, uuid);
         }
+
+        // 密码进行解密
+        password = AESUtil.decrypt(password);
+        if (StringUtils.isBlank(password)) {
+            throw new ServiceException("密码错误");
+        }
+
         // 用户验证
         Authentication authentication = null;
         try {

+ 1 - 1
project-zcustom/src/main/java/com/project/zcustom/controller/video/PlatVideoController.java

@@ -53,7 +53,7 @@ public class PlatVideoController extends BaseController {
     private final IScreenUnifiedVideoService iScreenUnifiedVideoService;
 
 
-    @RequestMapping("/monitorList")
+    //@RequestMapping("/monitorList")
     public AjaxResult monitorList(@RequestParam String code) {
         return AjaxResult.success("查询成功", znhqWebcamService.selectVideoList(code));
     }