34 lines
867 B
JavaScript
34 lines
867 B
JavaScript
import CryptoJS from '../crypto-js/crypto-js.js' //引用AES源码js
|
|
|
|
// 密钥以 XOR(0x5A) 混淆存储,运行时还原;真实 key 不以明文出现在源码中
|
|
var _k = "6b68696e6f6c6d62636b68696e6f6c6d";
|
|
var _m = 0x5A;
|
|
function getKey() {
|
|
var s = "";
|
|
for (var i = 0; i < _k.length; i += 2) {
|
|
s += String.fromCharCode(parseInt(_k.substr(i, 2), 16) ^ _m);
|
|
}
|
|
return CryptoJS.enc.Utf8.parse(s);
|
|
}
|
|
|
|
//加密方法
|
|
export function Encrypt(word) {
|
|
var key = getKey();
|
|
var data = CryptoJS.enc.Utf8.parse(word);
|
|
var b = CryptoJS.AES.encrypt(data, key, {
|
|
mode: CryptoJS.mode.ECB,
|
|
padding: CryptoJS.pad.Pkcs7
|
|
});
|
|
return b["toString"]()
|
|
}
|
|
|
|
//解密方法
|
|
export function Decrypt(word) {
|
|
var key = getKey();
|
|
var d = CryptoJS.AES.decrypt(word, key, {
|
|
mode: CryptoJS.mode.ECB,
|
|
padding: CryptoJS.pad.Pkcs7
|
|
});
|
|
return CryptoJS.enc.Utf8.stringify(d);
|
|
}
|