前言:
今天你们对“vue 接口加密”大致比较关怀,看官们都需要学习一些“vue 接口加密”的相关文章。那么小编在网上收集了一些有关“vue 接口加密””的相关内容,希望小伙伴们能喜欢,看官们一起来学习一下吧!VUE VUE项目中使用AES加密vue项目中使用AES加密安装 crypto-js加入AES加密的文件在项目中新建一个文件 Aes.jsAes.js引入AES加密模块应用举个栗一个小问题VUE项目中使用AES加密安装 CRYPTO-JS
npm install crypto-js1加入AES加密的文件在项目中新建一个文件 AES.JS
可以新建在 src\utils\Aes.js(文件名随意,目录尽量方便找到)
AES.JS
import CryptoJS from 'crypto-js/crypto-js'/* * 默认的 KEY IV 如果在加密解密的时候没有传入KEY和IV,就会使用这里定义的 * * 前后端交互时需要前后端**和初始向量保持一致 */const KEY = CryptoJS.enc.Utf8.parse("1234567890ABCDEF");// ** 长度必须为16位const IV = CryptoJS.enc.Utf8.parse("123456"); // 初始向量 长度随意/* * AES加密 :字符串 key iv 返回base64 */export function Encrypt(str, keyStr, ivStr) { let key = KEY let iv = IV if (keyStr && ivStr) { key = CryptoJS.enc.Utf8.parse(keyStr); iv = CryptoJS.enc.Utf8.parse(ivStr); } let srcs = CryptoJS.enc.Utf8.parse(str); var encrypt = CryptoJS.AES.encrypt(srcs, key, { iv: iv, mode: CryptoJS.mode.CBC, //这里可以选择AES加密的模式 padding: CryptoJS.pad.Pkcs7 }); return CryptoJS.enc.Base64.stringify(encrypt.ciphertext);}/* * AES 解密 :字符串 key iv 返回base64 */export function Decrypt(str, keyStr, ivStr) { let key = KEY let iv = IV if (keyStr && ivStr) { key = CryptoJS.enc.Utf8.parse(keyStr); iv = CryptoJS.enc.Utf8.parse(ivStr); } let base64 = CryptoJS.enc.Base64.parse(str); let src = CryptoJS.enc.Base64.stringify(base64); var decrypt = CryptoJS.AES.decrypt(src, key, { iv: iv, mode: CryptoJS.mode.CBC, //这里可以选择AES解密的模式 padding: CryptoJS.pad.Pkcs7 }); var decryptedStr = decrypt.toString(CryptoJS.enc.Utf8); return decryptedStr.toString();}1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556引入AES加密模块
在需要使用AES加密解密的方法的Vue组件中引入AES加密解密模块
import { Encrypt, Decrypt } from "@/utils/Aes.js";1
使用AES加密解密的方法
let a = "Hello World!"; console.log(a); // Encrypt 加密 a = Encrypt(a); console.log(a); // Decrypt 解密 a = Decrypt(a); console.log(a);12345678应用举个栗
axios({ url: '/api/aaa/bbb', // 后端的接口地址 method: 'post', data: { userName: Encrypt(this.userName), password: Encrypt(this.password), }, transformRequest: [function (data) { data = Qs.stringify(data); return data; }], headers: { 'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8' }, dataType: "json"}) .then(res => { console.log("连接成功"); // 这里多打印一句提示,只是为了更直观一点 console.log(res); // res 是后端回传的数据,如果连接成功,可以把res打印出来。 }) .catch(function (error) { console.log("连接失败"); // 作用同上 console.log(error); // 如果连接失败,会抛出错误信息。 });1234567891011121314151617181920212223一个小问题
KEY长度必须是16位,IV长度任意
KEY长度不是16位时,可以进行加密,但是解密出来的值为空。
版权声明:
本站文章均来自互联网搜集,如有侵犯您的权益,请联系我们删除,谢谢。
标签: #vue 接口加密