aesEncryption.ts 748 B

123456789101112131415161718192021222324252627282930313233
  1. import CryptoES from 'crypto-es';
  2. export interface EncryptionParams {
  3. key: string;
  4. iv: string;
  5. }
  6. export class Encryption {
  7. private key;
  8. private iv;
  9. constructor(opt: EncryptionParams) {
  10. const { key, iv } = opt;
  11. this.key = CryptoES.enc.Utf8.parse(key);
  12. this.iv = CryptoES.enc.Utf8.parse(iv);
  13. }
  14. get getOptions(): CryptoES.lib.CipherCfg {
  15. return {
  16. mode: CryptoES.mode.CBC as any,
  17. padding: CryptoES.pad.Pkcs7,
  18. iv: this.iv,
  19. };
  20. }
  21. encryptByAES(str: string) {
  22. return CryptoES.AES.encrypt(str, this.key, this.getOptions).toString();
  23. }
  24. decryptByAES(str: string) {
  25. return CryptoES.AES.decrypt(str, this.key, this.getOptions).toString(CryptoES.enc.Utf8);
  26. }
  27. }
  28. export default Encryption;