Blame view

src/utils/AES.js 944 Bytes
f304dea7   liuqimichale   农行支付
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
  import CryptoJS from "crypto-js";
  
  /**
   *
   * 第一个参数word是待加密或者解密的字符串;
   * 第二个参数keyStraes加密需要用到的16位字符串的key
   * 第三个参数是初始化向量 iv
   */
  
  export default {
    // 加密
    encrypt(word, keyStr, ivStr) {
      const key = CryptoJS.enc.Latin1.parse(keyStr);
      const iv = CryptoJS.enc.Latin1.parse(ivStr);
      const encoded = CryptoJS.AES.encrypt(word, key, {
        iv: iv,
        mode: CryptoJS.mode.CBC,
        adding: CryptoJS.pad.ZeroPadding
      }).toString()
      return encoded;
    },
    // 解密
    decrypt(word, keyStr, ivStr) {
      keyStr = keyStr;
      ivStr = ivStr;
      var key = CryptoJS.enc.Utf8.parse(keyStr);
      let iv = CryptoJS.enc.Utf8.parse(ivStr);
  
      var decrypt = CryptoJS.AES.decrypt(word, key, {
        iv,
        mode: CryptoJS.mode.CBC,
        padding: CryptoJS.pad.ZeroPadding
      });
      return decrypt.toString(CryptoJS.enc.Utf8);
    }
  };