49 lines
1.1 KiB
JavaScript
49 lines
1.1 KiB
JavaScript
import CryptoJS from './crypto-js.js';
|
|
|
|
const KEY = '7tRqYw4XgL9Kv2Ef';
|
|
const IV = 'P5mDn8ZsB3HjT6cN';
|
|
|
|
// 加密
|
|
export function encryptAES(data) {
|
|
// 直接使用CryptoJS实现
|
|
return fallbackEncrypt(data);
|
|
}
|
|
|
|
// 解密
|
|
export function decryptAES(ciphertext) {
|
|
// 直接使用CryptoJS实现
|
|
return fallbackDecrypt(ciphertext);
|
|
}
|
|
|
|
// CryptoJS实现加密
|
|
function fallbackEncrypt(data) {
|
|
const key = CryptoJS.enc.Utf8.parse(KEY);
|
|
const iv = CryptoJS.enc.Utf8.parse(IV);
|
|
|
|
const encrypted = CryptoJS.AES.encrypt(data, key, {
|
|
iv: iv,
|
|
mode: CryptoJS.mode.CBC,
|
|
padding: CryptoJS.pad.Pkcs7,
|
|
});
|
|
|
|
return encrypted.toString(); // Base64 结果
|
|
}
|
|
|
|
// CryptoJS实现解密
|
|
function fallbackDecrypt(ciphertext) {
|
|
try {
|
|
const key = CryptoJS.enc.Utf8.parse(KEY);
|
|
const iv = CryptoJS.enc.Utf8.parse(IV);
|
|
|
|
const decrypted = CryptoJS.AES.decrypt(ciphertext, key, {
|
|
iv: iv,
|
|
mode: CryptoJS.mode.CBC,
|
|
padding: CryptoJS.pad.Pkcs7,
|
|
});
|
|
|
|
return decrypted.toString(CryptoJS.enc.Utf8);
|
|
} catch (error) {
|
|
console.error('解密失败:', error);
|
|
return '';
|
|
}
|
|
} |