- 统一从 utils 目录导入工具函数,而非具体的子文件 - 更新了 uploadFile, buildUrl, formatCurrency 等函数的导入路径 - 修改 CustomTabBar 组件接收 userRoleVO 对象而非 role 字符串 - 调整金额格式化相关工具函数的引用方式 - 更新文档中项目结构和费用管理相关说明 - 优化用户角色权限相关的数据传递逻辑
36 lines
1.1 KiB
TypeScript
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;
|
|
}
|
|
}
|