AESUtil.js 893 B

1234567891011121314151617181920212223242526272829303132
  1. const CryptoJS = require('./crypto-js-4.2.0/crypto-js');
  2. class AESUtil {
  3. // AES 加密
  4. static AESencrypt(plaintext, key, iv) {
  5. const keyUtf8 = CryptoJS.enc.Utf8.parse(key);
  6. const ivUtf8 = CryptoJS.enc.Utf8.parse(iv);
  7. const encryptedData = CryptoJS.AES.encrypt(plaintext, keyUtf8, {
  8. iv: ivUtf8,
  9. mode: CryptoJS.mode.CBC,
  10. padding: CryptoJS.pad.Pkcs7,
  11. });
  12. return encryptedData.toString();
  13. }
  14. // AES 解密
  15. static AESdecrypt(ciphertext, key, iv) {
  16. const keyUtf8 = CryptoJS.enc.Utf8.parse(key);
  17. const ivUtf8 = CryptoJS.enc.Utf8.parse(iv);
  18. const decryptedData = CryptoJS.AES.decrypt(ciphertext, keyUtf8, {
  19. iv: ivUtf8,
  20. padding: CryptoJS.pad.Pkcs7,
  21. });
  22. return decryptedData.toString(CryptoJS.enc.Utf8);
  23. }
  24. }
  25. module.exports = AESUtil;