// 引入 CryptoJS 库，用于提供加密功能
import CryptoJS from 'crypto-js';

/**
 * 使用 AES 算法对给定内容进行加密。
 *
 * @param {string} word - 需要加密的内容。
 * @param {string} [keyWord='XwKsGlMcdPMEhR1B'] - 用于加密的密钥，默认为 'XwKsGlMcdPMEhR1B'。
 * @returns {string} - 返回加密后的字符串，使用 Base64 编码。
 */
export function aesEncrypt(word, keyWord = 'XwKsGlMcdPMEhR1B') {
  // 将密钥转换为 UTF-8 编码的字节数组
  const key = CryptoJS.enc.Utf8.parse(keyWord);

  // 将要加密的内容转换为 UTF-8 编码的字节数组
  const srcs = CryptoJS.enc.Utf8.parse(word);

  // 使用 AES 加密算法，采用 ECB 模式和 PKCS7 填充方式对数据进行加密
  const encrypted = CryptoJS.AES.encrypt(srcs, key, {
    mode: CryptoJS.mode.ECB,   // 设置加密模式为 ECB (Electronic Codebook)
    padding: CryptoJS.pad.Pkcs7 // 设置填充方式为 PKCS7
  });

  // 返回加密后的内容，以 Base64 编码的字符串形式
  return encrypted.toString();
}
