美文网首页
RSA加密jsencrypt.js

RSA加密jsencrypt.js

作者: 半瓶不满 | 来源:发表于2018-03-08 12:36 被阅读0次

    引入jsencrypt.js文件

    /**
         * RSA加密
         * @param str
         * @returns {*}
         */
        cmdRSAEncrypt (str){
            let key ="MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDtID8+nPhjcHtIIo+ACbcx4ijCyNMXRZeP5dCIaYaS915lFtrwFUPPzpTwA3OS12zQjowKh/v7ING0KhVQ66n+kI5oEUdAyqrBEYGCoUDszQ9SRm/zb3KR1dMjKrhRLEC3Q5h7zR7QMLKYg0/Qj0tJtHXsUMjxGE6Wes9dCNKewQIDAQAB"
                ,Encrypt = new JSEncrypt();
            Encrypt.setPublicKey(key);
            return Encrypt.encrypt(str);
        }
    

    通过cmdRSAEncrypt(str)调用,
    参数要转换格式JSON.stringify()。

    加密参数过长?

    有时加密时,会遇到加密参数过长而无法加密的现象,
    在源码中加入以下代码,通过调用encryptLong方法,重新定义加密函数即可。

     JSEncrypt.prototype.encryptLong = function(string) {  
          var k = this.getKey();
          // var maxLength = (((k.n.bitLength()+7)>>3)-11);
          var maxLength = 117;
    
          try {
            var lt = "";
            var ct = "";
    
            if (string.length > maxLength) {
              lt = string.match(/.{1,117}/g);
              lt.forEach(function(entry) {
                var t1 = k.encrypt(entry);
                ct += t1 ;
              });
              return hex2b64(ct);
            }
            var t = k.encrypt(string);
            var y = hex2b64(t);
            return y;
          } 
          catch (ex) {
            return false;
          }
        };
    

    相关文章

      网友评论

          本文标题:RSA加密jsencrypt.js

          本文链接:https://www.haomeiwen.com/subject/sxxyfftx.html