微信小程式 RSA 加密、解密,分段加解密
阿新 • • 發佈:2019-02-09
雖然說微信小程式本身有自己的安全機制,但我們有時候業務需要。需要自己做一層加密,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; } }