import * as CryptoJS from 'crypto-js'; export function encrypt(text: string, key: string, iv: string): string { const keyUtf8 = CryptoJS.enc.Utf8.parse(key); const ivUtf8 = CryptoJS.enc.Utf8.parse(iv); const encrypted = CryptoJS.AES.encrypt(text, keyUtf8, { iv: ivUtf8, mode: CryptoJS.mode.CTR, padding: CryptoJS.pad.NoPadding, format: CryptoJS.format.Hex }); return encrypted.toString(); } export function decrypt(ciphertext: string, key: string, iv: string): string { const keyUtf8 = CryptoJS.enc.Utf8.parse(key); const ivUtf8 = CryptoJS.enc.Utf8.parse(iv); const cypher = CryptoJS.enc.Hex.parse(ciphertext); const cipherParams = CryptoJS.lib.CipherParams.create({ ciphertext: cypher, }); const decrypted = CryptoJS.AES.decrypt(cipherParams, keyUtf8, { iv: ivUtf8, mode: CryptoJS.mode.CTR, padding: CryptoJS.pad.NoPadding, }); return decrypted.toString(CryptoJS.enc.Utf8); }