虽然说微信小程序本身有自己的安全机制,但我们有时候业务需要。需要自己做一层加密,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 点击下载