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();
|
}
|