本文用的加密规则

算法:AES
模式:ECB
密钥:自己填
补码方式:PKCS5Padding/PKCS7Padding
初始向量:ECB 模式不需要
加密结果编码方式:Hex

复制可用的代码

  1. const CryptoJS = require('crypto-js');
  2. const key = '1234567812345678'; // 密钥,根据实际项目修改
  3. // 加密。word字段是传入要加密的信息
  4. exports.encrypt = (word, keyStr) => {
  5. keyStr = keyStr ? keyStr : key;
  6. let key = CryptoJS.enc.Utf8.parse(keyStr);
  7. let srcs = CryptoJS.enc.Utf8.parse(word);
  8. let encrypted = CryptoJS.AES.encrypt(srcs, key, {
  9. mode: CryptoJS.mode.ECB, // ECB模式
  10. padding: CryptoJS.pad.Pkcs7, // 补码方式:PKCS5Padding和PKCS7Padding是一样的
  11. });
  12. var hexStr = encrypted.ciphertext.toString().toUpperCase(); // 输出Hex
  13. return hexStr;
  14. }
  15. // 解密
  16. exports.decrypt = (word, keyStr) => {
  17. keyStr = keyStr ? keyStr : key;
  18. let key = CryptoJS.enc.Utf8.parse(keyStr);
  19. let encryptedHexStr = CryptoJS.enc.Hex.parse(word);
  20. let srcs = CryptoJS.enc.Base64.stringify(encryptedHexStr);
  21. let decrypt = CryptoJS.AES.decrypt(srcs, key, {
  22. mode: CryptoJS.mode.ECB,
  23. padding: CryptoJS.pad.Pkcs7
  24. });
  25. let decryptedStr = decrypt.toString(CryptoJS.enc.Utf8);
  26. return decryptedStr.toString();
  27. }