ソースを参照

Merge branch 'web-v2' of http://192.168.1.43:3000/git/sass-lab-web into web-v2

dedsudiyu 2 年 前
コミット
ba7611aab4
共有2 個のファイルを変更した12 個の追加31 個の削除を含む
  1. 11 30
      src/utils/secret.js
  2. 1 1
      src/views/comprehensive/system/publicConfig/exploitConfig.vue

+ 11 - 30
src/utils/secret.js

@@ -1,46 +1,27 @@
 //引入crypto-js
 const CryptoJS = require('crypto-js');
 
-//十六位十六进制数作为密钥(秘钥为随机生成,必须与后端保持一致!)
-const key = CryptoJS.enc.Utf8.parse("J4ny0Ja678Y7P2so");
-//十六位十六进制数作为密钥偏移量(秘钥为随机生成,必须与后端保持一致!)
-const iv = CryptoJS.enc.Utf8.parse('pTNorfvZW2UZJbd0');
+// //十六位十六进制数作为密钥(秘钥为随机生成,必须与后端保持一致!)
+// const key = 'J4ny0Ja678Y7P2so';
+// //十六位十六进制数作为密钥偏移量(秘钥为随机生成,必须与后端保持一致!)
+// const iv = 'pTNorfvZW2UZJbd0';
 
+const key = CryptoJS.enc.Utf8.parse("J4ny0Ja678Y7P2so");  //十六位十六进制数作为密钥
+const iv = CryptoJS.enc.Utf8.parse('pTNorfvZW2UZJbd0');   //十六位十六进制数作为密钥偏移量
 //解密方法
 function Decrypt(word) {
-  // 先将 Base64 还原一下, 因为加密的时候做了一些字符的替换
-  const restoreBase64 = word.replace(/\-/g,'+').replace(/_/g,'/');
-  // 这里 mode, padding, iv 一定要跟加密的时候完全一样
-  // 返回的是一个解密后的对象
-  let decrypt = CryptoJS.AES.decrypt(restoreBase64, key, {
-    iv: iv,
-    mode: CryptoJS.mode.CBC,
-    padding: CryptoJS.pad.Pkcs7
-  });
-  // 将解密对象转换成 UTF8 的字符串
+  let encryptedHexStr = CryptoJS.enc.Hex.parse(word);
+  let srcs = CryptoJS.enc.Base64.stringify(encryptedHexStr);
+  let decrypt = CryptoJS.AES.decrypt(srcs, key, { iv: iv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7 });
   let decryptedStr = decrypt.toString(CryptoJS.enc.Utf8);
-  // 返回解密结果
   return decryptedStr.toString();
 }
 
 //加密方法
 function Encrypt(word) {
   let srcs = CryptoJS.enc.Utf8.parse(word);
-  /**
-   * CipherOption, 加密的一些选项:
-   *   mode: 加密模式, 可取值(CBC, CFB, CTR, CTRGladman, OFB, ECB), 都在 CryptoJS.mode 对象下
-   *   padding: 填充方式, 可取值(Pkcs7, AnsiX923, Iso10126, Iso97971, ZeroPadding, NoPadding), 都在 CryptoJS.pad 对象下
-   *   iv: 偏移量, mode === ECB 时, 不需要 iv
-   * 	返回的是一个加密对象
-   */
-  let encrypted = CryptoJS.AES.encrypt(srcs, key,
-    {
-      iv: iv,
-      mode: CryptoJS.mode.CBC,
-      padding: CryptoJS.pad.Pkcs7
-    });
-  //将结果进行base64加密
-  return encrypted.ciphertext.toString(CryptoJS.enc.Base64);
+  let encrypted = CryptoJS.AES.encrypt(srcs, key, { iv: iv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7 });
+  return encrypted.ciphertext.toString().toUpperCase();
 }
 
 export {Decrypt , Encrypt}

+ 1 - 1
src/views/comprehensive/system/publicConfig/exploitConfig.vue

@@ -192,7 +192,6 @@
       };
     },
     created() {
-
     },
     mounted(){
       this.getUrlConfig();
@@ -223,6 +222,7 @@
         let _this=this;
         getUrlConfig().then(response => {
             _this.form=response.data
+
           _this.form.mqttExtranetUrl=Decrypt(_this.form.mqttExtranetUrl)
           _this.form.mqttExtranetUser=Decrypt(_this.form.mqttExtranetUser)
           _this.form.mqttExtranetPassword=Decrypt(_this.form.mqttExtranetPassword)