ERPTurbo_Client/packages/app-client/src/utils/functions/aes.ts
shenyifei d37626d5bf refactor(utils): 重构工具函数导入路径
- 统一从 utils 目录导入工具函数,而非具体的子文件
- 更新了 uploadFile, buildUrl, formatCurrency 等函数的导入路径
- 修改 CustomTabBar 组件接收 userRoleVO 对象而非 role 字符串
- 调整金额格式化相关工具函数的引用方式
- 更新文档中项目结构和费用管理相关说明
- 优化用户角色权限相关的数据传递逻辑
2025-11-21 19:59:49 +08:00

36 lines
1.1 KiB
TypeScript

import CryptoJS from "crypto-js";
const key = "weKANfYbTTqZCve0"; // 密钥,自行修改
export function aesEncrypt(plaintext: string) {
try {
const keyBytes = CryptoJS.enc.Utf8.parse(key);
const encrypted = CryptoJS.AES.encrypt(
CryptoJS.enc.Utf8.parse(plaintext),
keyBytes,
{
mode: CryptoJS.mode.ECB, //aes加密模式EcB 前后端使用统一的加密模式
padding: CryptoJS.pad.Pkcs7, //使用Pkcs7的方式填充
},
);
const hexStr = CryptoJS.enc.Hex.parse(encrypted.ciphertext.toString());
return CryptoJS.enc.Base64.stringify(hexStr);
} catch (e) {
// console.log("===aesEncrypt ", e);
}
return plaintext;
}
export function aesDecrypt(secrecyStr: string | CryptoJS.lib.CipherParams) {
try {
const keyBytes = CryptoJS.enc.Utf8.parse(key);
const decryptedBytes = CryptoJS.AES.decrypt(secrecyStr, keyBytes, {
mode: CryptoJS.mode.ECB, // 前后端一致的加解密模式
padding: CryptoJS.pad.Pkcs7, // 前后端一致的填充方式
});
return decryptedBytes.toString(CryptoJS.enc.Utf8);
} catch (e) {
return secrecyStr;
}
}