import CryptoJS from 'crypto-js';

/**
 * AES256 암호화 Secret Key
 */
const SECRET_KEY = 'MyListBridgeSecretKey1234567890';

/**
 * AES256 암호화
 * @param plainText 암호화할 평문
 * @returns 암호화된 Base64 문자열
 */
export function encryptAES256(plainText: string): string {
  try {
    // AES256 암호화
    const encrypted = CryptoJS.AES.encrypt(plainText, SECRET_KEY);

    // Base64 문자열로 반환
    return encrypted.toString();
  } catch (error) {
    console.error('AES256 암호화 실패:', error);
    throw new Error('암호화 중 오류가 발생했습니다.');
  }
}

/**
 * AES256 복호화 (테스트용)
 * @param encryptedText 암호화된 Base64 문자열
 * @returns 복호화된 평문
 */
export function decryptAES256(encryptedText: string): string {
  try {
    // AES256 복호화
    const decrypted = CryptoJS.AES.decrypt(encryptedText, SECRET_KEY);

    // UTF-8 문자열로 반환
    return decrypted.toString(CryptoJS.enc.Utf8);
  } catch (error) {
    console.error('AES256 복호화 실패:', error);
    throw new Error('복호화 중 오류가 발생했습니다.');
  }
}
