微信小程序 RSA 加密、解密,分段加解密

虽然说微信小程序本身有自己的安全机制,但我们有时候业务需要。需要自己做一层加密,AES比较简单,就不说了。

这里说一下RSA非对称加密。一般网上搜的都不全,要么就没有分段加解密。这里做一下整理,方便大家使用。

 

主要添加两个方法:

function RSAEncryptLong(d){
  var k = this;
  var maxLength = (((k.n.bitLength() + 7) >> 3) - 11);

  try {
    var lt = "";
    var ct = "";

    if (d.length > maxLength) {
      lt = d.match(/.{1,117}/g);
      lt.forEach(function (entry) {
        var t1 = k.encrypt(entry);
        ct += t1;
      });
      return hex2b64(ct);
    }
    var t = k.encrypt(d);
    var y = hex2b64(t);
    return y;
  } catch (ex) {
    return false;
  }
}


function RSADecryptLong(d){
  var k = this;
  var maxLength = ((k.n.bitLength() + 7) >> 3);
  //var maxLength = 128;
  
  try {
    var str = b64tohex(d);
   // var b = hex2Bytes(str);
    var inputLen = str.length;
    var ct = "";
    if (inputLen > maxLength) {
        var lt = str.match(/.{1,256}/g);
        lt.forEach(function (entry) {
            var t1 = k.decrypt(entry);
            ct += t1;
        });
        return ct;
    }
    var y = k.decrypt(str);
    return y;
} catch (ex) {
    return false;
}

}

完整的类,直接复制黏贴就能用: 下载链接:https://download.csdn.net/download/kokjuis/10694798  点击下载

 

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值