1. 程式人生 > 實用技巧 >VUE——APP,後端,前端三端AES加密解密

VUE——APP,後端,前端三端AES加密解密

前言

為了資料的安全,所以三端訊息需要進行加密解密傳輸

步驟

安裝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,''))