import CryptoJS from 'crypto-js'

/**
 * MD5 加密函数
 * @param str 要加密的字符串
 * @returns 加密后的 32 位小写字符串
 */
export const md5Encrypt = (str: string): string => {
  if (!str) return ''
  // 核心：调用 crypto-js 的 MD5 方法，转换为小写字符串
  return CryptoJS.MD5(str).toString(CryptoJS.enc.Hex).toLowerCase()
}

/**
 * MD5 加密（大写）
 * @param str 要加密的字符串
 * @returns 加密后的 32 位大写字符串
 */
// export const md5EncryptUpper = (str: string): string => {
//   return md5Encrypt(str).toUpperCase()
// }

/**
 * MD5 加盐加密（提升安全性）
 * @param str 要加密的字符串
 * @param salt 盐值（自定义，如项目唯一标识）
 * @returns 加盐后的 MD5 字符串
 */
// export const md5EncryptWithSalt = (str: string, salt: string = 'your-custom-salt'): string => {
//   // 盐值拼接方式可自定义，如 str + salt 或 salt + str
//   return md5Encrypt(`${str}${salt}`)
// }
