AESUtil.ts 972 B

123456789101112131415161718192021222324252627282930313233
  1. import * as CryptoJS from './crypto-js-4.2.0/crypto-js';
  2. class AESUtil {
  3. // AES 加密
  4. public static AESencrypt(plaintext: string, key: string, iv: string): string {
  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. public static AESdecrypt(ciphertext: string, key: string, iv: string): string {
  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. export default AESUtil;