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))') } } }