VUE——APP,後端,前端三端AES加密解密
阿新 • • 發佈:2020-09-18
前言
為了資料的安全,所以三端訊息需要進行加密解密傳輸
步驟
安裝crypto-js
npm install crypto-js
加密解密方法
先AES加密,然後base64加密
import CryptoJS from 'crypto-js/crypto-js' import {aesKey, aesIv} from '@/config' /** * AES加密 */ export function Encrypt(data) { let encrypted = CryptoJS.AES.encrypt(CryptoJS.enc.Utf8.parse(data), CryptoJS.enc.Utf8.parse(aesKey), { iv: CryptoJS.enc.Utf8.parse(aesIv), mode: CryptoJS.mode.ECB, padding: CryptoJS.pad.Pkcs7 }) return CryptoJS.enc.Base64.stringify(encrypted.ciphertext) } /** * AES 解密 */ export function Decrypt(data) { let decrypt = CryptoJS.AES.decrypt(CryptoJS.enc.Base64.stringify(CryptoJS.enc.Base64.parse(data)), CryptoJS.enc.Utf8.parse(aesKey), { iv: CryptoJS.enc.Utf8.parse(aesIv), mode: CryptoJS.mode.ECB, padding: CryptoJS.pad.Pkcs7 }) let decryptedStr = decrypt.toString(CryptoJS.enc.Utf8) return decryptedStr.toString() }
注意事項
1. key和iv都需要設定
2. mode請使用ECB
3. padding請使用Pkcs7
4. 安卓端的加密傳輸到前端和後端都有換行,需要先去除換行符
Decrypt(JSON.stringify(content.data.replace(/\n/g,'')).replace(/[\"]/g,''))