【react使用AES对称加密的实现】-加密方法

时间:2024-11-07 07:36:37
// 加密
export const encryptionTxt = (plaintext) => {
  if (!plaintext) { // 空值判断, 避免空值阻塞代码
    return ''
  }
  if (typeof plaintext !== 'string') {// 加密内容必须为字符串
    plaintext = String(plaintext)
  }
  // 从环境变量中拿密匙
  const mikey = process.env.REACT_APP_API_KEY
  const key = CryptoJS.enc.Utf8.parse(mikey)
  // 使用AES加密 (ECB模式)
  const encrypted = CryptoJS.AES.encrypt(plaintext, key, {
    mode: CryptoJS.mode.ECB, // ECB加密模式
    padding: CryptoJS.pad.Pkcs7, // 填充方式,常用Pkcs7
  })

  // 将加密后的数据转换为16进制字符串
  const encryptedHexStr = encrypted.ciphertext.toString(CryptoJS.enc.Hex)

  // 打印加密后的16进制字符串
  return encryptedHexStr
}