From 2910d1ac9e9178cf5779f73d146d936e64ed0afa Mon Sep 17 00:00:00 2001
From: liyuetong
Date: Wed, 15 Dec 2021 17:47:14 +0800
Subject: [PATCH] =?UTF-8?q?=E9=9A=8F=E6=9C=BA=E5=AF=86=E7=A0=81=E5=8A=A0?=
=?UTF-8?q?=E5=AF=86=E8=A7=A3=E5=AF=86--v2=E7=8E=AF=E5=A2=83=EF=BC=8C?=
=?UTF-8?q?=E5=B0=81=E8=A3=85=E5=8A=A0=E5=AF=86=E8=A7=A3=E5=AF=86=E7=9A=84?=
=?UTF-8?q?=E6=96=B9=E6=B3=95?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/assets/js/utils/cryptoJsUtil.js | 28 +++++++++++++++++++++++++---
src/assets/js/utils/request.js | 14 ++++++++------
2 files changed, 33 insertions(+), 9 deletions(-)
diff --git a/src/assets/js/utils/cryptoJsUtil.js b/src/assets/js/utils/cryptoJsUtil.js
index c0e940fc8..0c2ee6c4e 100644
--- a/src/assets/js/utils/cryptoJsUtil.js
+++ b/src/assets/js/utils/cryptoJsUtil.js
@@ -27,7 +27,30 @@ export let RSAEncrypt = function(data, publicKey) {
// crypt.setPrivateKey(privateKey)
// return crypt.decrypt(data)
// }
-// AES加密
+
+export let AESEncryptV2 = function(data, keys) {
+ //加密V2
+ var key = CryptoJS.enc.Hex.parse(keys)
+ var iv = CryptoJS.enc.Utf8.parse('0123456789ABCDEF') //偏移量
+ var encrypted = CryptoJS.AES.encrypt(data, key, {
+ iv: iv,
+ mode: CryptoJS.mode.CBC,
+ padding: CryptoJS.pad.Pkcs7
+ })
+ return encrypted.toString()
+}
+export let AESDecryptV2 = function(encrypted, keys) {
+ //解密V2
+ var key = CryptoJS.enc.Hex.parse(keys)
+ var iv = CryptoJS.enc.Utf8.parse('0123456789ABCDEF')
+ var decrypted = CryptoJS.AES.decrypt(encrypted, key, {
+ iv: iv,
+ mode: CryptoJS.mode.CBC,
+ padding: CryptoJS.pad.Pkcs7
+ })
+ return CryptoJS.enc.Utf8.stringify(decrypted)
+}
+// AES加密V3
export let AESEncrypt = function(data, key) {
var key = CryptoJS.enc.Utf8.parse(key)
var iv = CryptoJS.enc.Utf8.parse('0123456789ABCDEF')
@@ -38,9 +61,8 @@ export let AESEncrypt = function(data, key) {
})
return encrypted.toString()
}
-// AES解密
+// AES解密V3
export let AESDecrypt = function(encrypted, key) {
- //解密
var key = CryptoJS.enc.Utf8.parse(key)
var iv = CryptoJS.enc.Utf8.parse('0123456789ABCDEF')
var decrypted = CryptoJS.AES.decrypt(encrypted, key, {
diff --git a/src/assets/js/utils/request.js b/src/assets/js/utils/request.js
index ff3e5f3ec..c33972c07 100644
--- a/src/assets/js/utils/request.js
+++ b/src/assets/js/utils/request.js
@@ -1,8 +1,9 @@
import axios from 'axios'
-// import AESTools from '@/assets/js/utils/cryptoJsUtil'
import {
MD5,
RSAEncrypt,
+ AESEncryptV2,
+ AESDecryptV2,
AESEncrypt,
AESDecrypt,
randomString,
@@ -165,6 +166,8 @@ service.interceptors.request.use(
masterKey = window.localStorage.getItem('masterKey')
}
}
+ // token 不存在初始化处理
+ let token = CacheUtils.getLocItem('token')
/**
* 请求拦截处理(待添加 判断走统一网关处理)
*/
@@ -197,14 +200,13 @@ service.interceptors.request.use(
console.log(AESDecrypt(config.data.data, masterKey));
}
}else if(configApp.API_VERSION == 'v2'){
- let encrypt = AESEncrypt(JSON.stringify(config.data), configApp.REQ_PWD)
+ config.headers['signature'] = MD5(timeStr + CacheUtils.getLocItem('token'))
+ let encrypt = AESEncryptV2(JSON.stringify(config.data), configApp.REQ_PWD)
config.data = { data: encrypt }
}
}
}
- // token 不存在初始化处理
- let token = CacheUtils.getLocItem('token')
if (!token) {
console.log('token====>>', token)
// 设备类型
@@ -230,7 +232,6 @@ service.interceptors.request.use(
// 添加请时间戳
let timeStr = new Date().getTime() + ''
config.headers['timeStr'] = timeStr
- // config.headers['signature'] = MD5(timeStr + CacheUtils.getLocItem('token'))
return config
},
error => {
@@ -266,7 +267,8 @@ service.interceptors.response.use(
res = JSON.parse(AESDecrypt(res.response, masterKey))
}else if(configApp.API_VERSION == 'v2'){
// 使用固定密钥解密返回结果data
- res = JSON.parse(AESDecrypt(res.response, configApp.REQ_PWD))
+ res = JSON.parse(AESDecryptV2(res.response, configApp.REQ_PWD))
+ console.log(res,'JSON.parse(AESDecrypt(res.response, configApp.REQ_PWD))')
}
}
}