js加减密

首先,下载加密库。下面是我自己下的分享文件链接

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位的长度

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值