longz
2026-05-28 23fe797f9dded6d7ec9ecbcf760f764374dea8e0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import CryptoJS from "crypto-js";
 
const AES_KEY = import.meta.env.VITE_ADMIN_LOGIN_AES_KEY || "SinataAdminKey01";
const AES_IV = import.meta.env.VITE_ADMIN_LOGIN_AES_IV || "SinataAdminIv001";
 
function validateKeyAndIv() {
  if (AES_KEY.length !== 16 || AES_IV.length !== 16) {
    throw new Error(`管理后台登录AES配置无效(key=${AES_KEY.length}位, iv=${AES_IV.length}位)`);
  }
}
 
export function encryptAdminLoginField(rawValue: string, timestamp: number): string {
  validateKeyAndIv();
  const text = `${timestamp}|${rawValue}`;
  return CryptoJS.AES.encrypt(
    text,
    CryptoJS.enc.Utf8.parse(AES_KEY),
    {
      iv: CryptoJS.enc.Utf8.parse(AES_IV),
      mode: CryptoJS.mode.CBC,
      padding: CryptoJS.pad.Pkcs7
    }
  ).toString();
}