上码
let CryptoJS = require('crypto-js')
export const aesUtil = {
genKey: function (length = 16) {
let random = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
let str = "";
for (let i = 0; i < length; i++) {
str = str + random.charAt(Math.random() * random.length)
}
return str;
},
encrypt: function (plaintext, key = 'MIGfMA0GCSqGSIb3') {
if (plaintext instanceof Object) {
plaintext = JSON.stringify(plaintext)
}
let encrypted = CryptoJS.AES.encrypt(CryptoJS.enc.Utf8.parse(plaintext), CryptoJS.enc.Utf8.parse(key), { mode: CryptoJS.mode.ECB, padding: CryptoJS.pad.Pkcs7 });
return encrypted.toString();
},
decrypt: function (ciphertext, key = 'MIGfMA0GCSqGSIb3') {
try {
let decrypt = CryptoJS.AES.decrypt(ciphertext, CryptoJS.enc.Utf8.parse(key), { mode: CryptoJS.mode.ECB, padding: CryptoJS.pad.Pkcs7 });
let decString = CryptoJS.enc.Utf8.stringify(decrypt).toString();
if (decString.charAt(0) === "{" || decString.charAt(0) === "[") {
decString = JSON.parse(decString);
}
return decString;
} catch (err) {
return {msg:'解密失败'}
}
}
};