首先,下载加密库。下面是我自己下的分享文件链接
https://pan.baidu.com/s/1GD0nwb7dm7rvG7_2IkyMjA
提取码:8rps
以下正文--------------------------------------------------------------------------------
自动处理加密因子为32位
autocompleteStringTo32Length: function (req) {
var reqStr = "";
if (typeof (req) != "string") {
reqStr = JSON.stringify(req);
} else {
reqStr = req;
}
if (reqStr.length < 32) {
reqStr += this.aeskey;
}
if (reqStr.length >= 32) {
reqStr = reqStr.substr(0, 32);
}
return reqStr;
},
加密:
/*加密
reqObj:要加密的主因子
aeskey:加密因子1(可为空)
aesiv:加密因子2(可为空)
*/
aesEncrypt: function (reqObj, aeskey, aesiv) {
var reqStr = "";
if (typeof (reqObj) != "string") {
reqStr = JSON.stringify(reqObj);
} else {
reqStr = reqObj;
}
if (aeskey) {
aeskey = this.autocompleteStringTo32Length(aeskey);//如果长度不够32位自动补齐
}
if (aesiv) {
aesiv = this.autocompleteStringTo32Length(aesiv);
}
var key = aeskey == null ? this.aeskey : aeskey;
var curiv = aesiv == null ? this.aesiv : aesiv;
key = CryptoJS.enc.Hex.parse(key);
curiv = CryptoJS.enc.Hex.parse(curiv);
var ciphertext = CryptoJS.AES.encrypt(reqStr, key, {
iv: curiv,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7
});
return ciphertext;
}
解密:
aesDecrypt: function (ciphertext, aeskey, aesiv) {
if (aeskey) {
aeskey = this.autocompleteStringTo32Length(aeskey);
}
if (aesiv) {
aesiv = this.autocompleteStringTo32Length(aesiv);
}
var key = aeskey == null ? this.aeskey : aeskey;
var curiv = aesiv == null ? this.aesiv : aesiv;
key = CryptoJS.enc.Hex.parse(key);
curiv = CryptoJS.enc.Hex.parse(curiv);
var decrypted = CryptoJS.AES.decrypt(ciphertext, key, {
iv: curiv,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7
});
return decrypted.toString(CryptoJS.enc.Utf8);
}
最后自定义两个默认加密因子(aeskey、aesiv)即可,记得要32位的长度