wqy
2020-03-27 11:02:15
14953

通过CryptoJS进行加密解密

 

具体操作步骤

1  在前端通过CryptoJS进行加密需要请求的参数

 

var CryptoJS = require('crypto-js')
var key = CryptoJS.enc.Utf8.parse('RyIj2EohYGgjJN04')
var iv = CryptoJS.enc.Utf8.parse('be5wvgw5cpgo839f')

export function aesEncrypt(data) {
  const srcs = CryptoJS.enc.Base64.stringify(CryptoJS.enc.Utf8.parse(data))// 获取到的是base64加密后的数据
  const decrypt = CryptoJS.AES.encrypt(srcs, key, { iv: iv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7 })
  return decrypt.toString()
}

export function aesDecrypt(data) {
  const decrypt = CryptoJS.AES.decrypt(data, key, { iv: iv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7 })// 获取到的是base64加密后的数据
  const base64data = decrypt.toString(CryptoJS.enc.Utf8)
  return CryptoJS.enc.Base64.parse(base64data).toString(CryptoJS.enc.Utf8)
}

 

2 后台通过ase解密获取实际参数

/**
     * aes加密
     * @param $data string 加密的数据
     * @param $key
     * @param $iv string 
     * @param string $method 加密方式
     * @return false|string
     */
    public static function aesEncrypt($data,$key,$iv,$method = 'aes-128-cbc'){
        $data = base64_encode($data);
        $result  =  openssl_encrypt($data,$method,$key,OPENSSL_RAW_DATA,$iv);
        return base64_encode($result);
    }

    /**
     * aes解密数据
     * @param $data
     */
    public static function aesDecrypt($data,$key,$iv,$method = 'aes-128-cbc'){
        $data = base64_decode($data);
        $result = openssl_decrypt($data,$method,$key,OPENSSL_RAW_DATA,$iv);
        $result = base64_decode($result);
        return $result;
    }