前言
为了数据的安全,所以三端消息需要进行加密解密传输
步骤
安装crypto-js
代码语言:javascript复制npm install crypto-js
加密解密方法
先AES加密,然后base64加密
代码语言:javascript复制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()
}
注意事项
代码语言:javascript复制1. key和iv都需要设置
2. mode请使用ECB
3. padding请使用Pkcs7
4. 安卓端的加密传输到前端和后端都有换行,需要先去除换行符
Decrypt(JSON.stringify(content.data.replace(/n/g,'')).replace(/["]/g,''))