RSA加密jsencrypt.js

引入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;
      }
    };
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,219评论 25 708
  • 前段时间在网上搜索Python爬取网易云音乐评论的demo,找到一篇《使用Python爬一爬网易云音乐上那些评论火...
    finally_y阅读 4,706评论 2 5
  • 前端开发面试题 <a name='preface'>前言</a> 只看问题点这里 看全部问题和答案点这里 本文由我...
    自you是敏感词阅读 784评论 0 3
  • 状态同步 状态同步是从服务器到远程客户端完成的。本地客户端没有它的串行化数据,因为它与服务器共享场景。串行到本地客...
    JervieQin阅读 2,490评论 0 0
  • 早上醒来,睁开眼睛,打卡,时间依然显示在5点14分。连续打卡279天,这些天没有一次是利用闹钟。时间早早晚晚,都是...
    绽蕊向阳阅读 441评论 0 0