-
npm下载
npm install crypto-js
-
公共文件 AES.ts
import CryptoJS from 'crypto-js' const KEY = CryptoJS.enc.Utf8.parse('1234567891234567')//16位 const IV = CryptoJS.enc.Utf8.parse('qwerty123')//至少6位 // post传参 url参数格式 export function paramsUrl(key,value){ const params = new FormData(); params.append(key,value); return params } // 加密函数 export function encryptData(data) { const encrypted = CryptoJS.AES.encrypt( //data,//如果data是字符串 JSON.stringify(data),//data是对象格式所以需转为字符串 KEY, { iv: IV, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7 } ) return encrypted.toString() } // 解密函数 export function decryptData(data) { const decrypted = CryptoJS.AES.decrypt( data, KEY, { iv: IV, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7 } ) const val=CryptoJS.enc.Utf8.stringify(decrypted) return JSON.parse(val) //加密的参数是对象格式,所以解密之后需要转为对象形式 //return val //如果返回数据是单个字符串数据,与加密传参相对应 } export default { encryptData, decryptData, paramsUrl, }
-
使用
//页面引入 import {encryptData,decryptData,paramsUrl} from '@/utils/AES' //调用 const encry=encryptData(data) console.log(encry,"加密数据) const dencry=decryptData(encry) console.log(dencry,"解密数据) //接口传参 //如果传参格式需要是FormData或url时 const params =paramsUrl('encry', encry); axios.post('/api/data' , params )
请求头设置
'Content-Type':'application/x-www-form-urlencoded'