vue項目中使用crypto-js實現(xiàn)加密解密方式
更新時間:2024年05月16日 11:02:13 作者:A_ugust__
這篇文章主要介紹了vue項目中使用crypto-js實現(xiàn)加密解密方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
vue使用crypto-js實現(xiàn)加密解密
注意:
crypto-js加密后可自行選擇是否轉為base64,也需要后端配合加解密方法
npm install crypto-js
uitls新建文件夾screate.js
const CryptoJS = require('crypto-js'); //引用AES源碼js const key = CryptoJS.enc.Utf8.parse("1234123412ABCDEF"); //十六位十六進制數(shù)作為密鑰 // const iv = CryptoJS.enc.Utf8.parse('ABCDEF1234123412'); //十六位十六進制數(shù)作為密鑰偏移量 可用可不用 //加密方法 export function Encrypt(word:any){ // 法一:加密后轉化為base64 // let srcs = CryptoJS.enc.Utf8.parse(word); // let encrypted = CryptoJS.AES.encrypt(srcs, key, {mode: CryptoJS.mode.ECB, padding: CryptoJS.pad.Pkcs7 }); // return encrypted.ciphertext.toString(); // 法二:不轉 let srcs = CryptoJS.enc.Utf8.parse(word); let encrypted = CryptoJS.AES.encrypt(srcs, key, {mode: CryptoJS.mode.ECB, padding: CryptoJS.pad.Pkcs7 }); return encrypted.toString(); } //解密方法 export function Decrypt(word:any){ // 法一:對應解密 // let encryptedHexStr = CryptoJS.enc.Hex.parse(word); // let srcs = CryptoJS.enc.Base64.stringify(encryptedHexStr); // let decrypt = CryptoJS.AES.decrypt(srcs, key, { mode: CryptoJS.mode.ECB, padding: CryptoJS.pad.Pkcs7 }); // let decryptedStr = decrypt.toString(CryptoJS.enc.Utf8); // return decryptedStr.toString(); // 法二: var decrypt = CryptoJS.AES.decrypt(word, key, {mode:CryptoJS.mode.ECB,padding: CryptoJS.pad.Pkcs7}); return CryptoJS.enc.Utf8.stringify(decrypt).toString(); }
使用
參數(shù)是對象的話,加密需要 JSON.stringify(),解密需要JSON.parse()
getData(){ letparams = { "appId": '0000', "bizData": { "appName": '測試名稱', "authMode": "0x1113" }, "bizType": 1000 } var aa = Encrypt(JSON.stringify(params)) console.log(aa, '加密') searchHandle('/xxx/xxx/xxx', aa).then(res=>{ console.log('接口返回',res.data) var dd = JSON.parse(Decrypt(aa)) console.log(dd, '解密') if(res.data.code === 0){} }) }
使用crypto-js時報錯TypeError: Object(...) is not a function
控制臺報錯
如下:
原因
引入Encrypt時方式錯誤,少加了{}
正確形式:
import { Encrypt } from "../plugins/encoder";
總結
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
van-uploader保存文件到后端回顯后端接口返回的數(shù)據(jù)
前端開發(fā)想省時間就是要找框架呀,下面這篇文章主要給大家介紹了關于van-uploader保存文件到后端回顯后端接口返回的數(shù)據(jù),文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下2023-06-06Vue3系列之effect和ReactiveEffect?track?trigger源碼解析
這篇文章主要為大家介紹了Vue3系列之effect和ReactiveEffect?track?trigger源碼解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-10-10uniapp定義new plus.nativeObj.View實現(xiàn)APP端全局彈窗功能
文章介紹了在UniApp中使用`newplus.nativeObj.View`實現(xiàn)彈窗的原因和方法,它定義了一個`AppPopupView`彈窗函數(shù),并在`main.js`中掛載到全局頁面,以便在任何地方調(diào)用,感興趣的朋友跟隨小編一起看看吧2024-11-11vue3中keep-alive和vue-router的結合使用方式
這篇文章主要介紹了vue3中keep-alive和vue-router的結合使用方式,?具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-10-10