vue前後端aes url傳參解密再解base64編碼
阿新 • • 發佈:2018-12-23
需求:我們公司做機票訂購服務,有自己的平臺的訂單,也有第三方網站向我們網站匯入的使用者訂單,第三方匯入的是通過url傳參的方式匯入。url會攜帶使用者的相關資訊。
url裡面的引數是經過aes加密和base64編碼的,因此要取出裡面的資料是要解密和解碼的。
方案:
第一步:
安裝要依賴的js, npm install --save_dev crypto-js 然後在元件中將其引入。
程式碼:
import CryptoJS from 'crypto-js'
截圖
:
第二步:
安裝要依賴的js
獲取url中要取的引數,因為是url傳參,所以我們要在初始化create時進行取值,
程式碼:
var ddl = this.$route.query.channel
var word = this.$route.query.info;
截圖:
第三步:
寫相應的業務js程式碼
獲取url中要取的引數,因為是url傳參,所以我們要在初始化create時進行取值,
程式碼:
result就是最終解碼後的引數。注意:asdfghjklzxcvbnm是後端給的金鑰。
/*解密*/ function decrypt(word) { var key = CryptoJS.enc.Utf8.parse("asdfghjklzxcvbnm"); var restoreBase64 = word.replace(/\-/g, '+').replace(/_/g, '/'); // 這裡 mode, padding, iv 一定要跟加密的時候完全一樣 // 返回的是一個解密後的物件 var decipher = CryptoJS.AES.decrypt(restoreBase64, key, { mode: CryptoJS.mode.ECB, padding: CryptoJS.pad.Pkcs7, iv: '', }); // 將解密物件轉換成 UTF8 的字串 var resultDecipher = CryptoJS.enc.Utf8.stringify(decipher); // 返回解密結果 return resultDecipher; } var result = decrypt(word);
截圖: