CryptoJS 加密

crypto-js 是一个纯 javascript 写的加密算法类库 ,可以非常方便地在 javascript 进行 MD5、SHA1、SHA2、SHA3、RIPEMD-160 哈希散列,进行 AES、DES、Rabbit、RC4、Triple DES 加解密。下载安装:npm install crypto-js --save

加密在线工具

AES 加密 [16进制编码]

  const CryptoJS = require("crypto-js");
  const SecretKey = "12345677";
  // AES加密 Hex编码
  AESEncrypt(data) {
    const result = CryptoJS.AES.encrypt(
      data,
      CryptoJS.enc.Utf8.parse(SecretKey),
      {
        mode: CryptoJS.mode.ECB,
        padding: CryptoJS.pad.Pkcs7
      }
    );
    return result.ciphertext.toString();
  },
  // AES解密 Hex编码
  AESDecrypt(hexData) {
    const encryptedHexStr = CryptoJS.enc.Hex.parse(hexData);
    const encryptedBase64Str = CryptoJS.enc.Base64.stringify(encryptedHexStr);
    const decryptedData = CryptoJS.AES.decrypt(
      encryptedBase64Str,
      CryptoJS.enc.Utf8.parse(SecretKey),
      {
        mode: CryptoJS.mode.ECB,
        padding: CryptoJS.pad.Pkcs7
      }
    );
    return decryptedData.toString(CryptoJS.enc.Utf8);
  },

TripleDES 加密

// 加密
encryptByDES(message, key) {
  const keyHex = CryptoJS.enc.Utf8.parse(key);
  const encrypted = CryptoJS.TripleDES.encrypt(message, keyHex, {
    mode: CryptoJS.mode.ECB,
    padding: CryptoJS.pad.Pkcs7
  });
  return encrypted.toString();
},
// params - 需要加密的参数; key - 秘钥
const src = this.encryptByDES(JSON.stringify(params), key);
const baseSrc = encodeURIComponent(src);
const str = "1.0" + "UTF-8" + baseSrc + key;
var hash = CryptoJS.SHA256(str).toString();
// 接口入参
// data: baseSrc,
// sign: hash