使用jsencrypt 解密字符串过长后解密内容为Null 求解怎么办??地址jsencrypt :https://github.com/travist/js...网站找了一些但是都不能用 很多都是不全的 求解这个问题怎么解决啊?
import JSEncrypt from 'jsencrypt';
var RSA = new JSEncrypt();
/*
解密数据
* content 内容(String)
* mode 方法(String)
* */
static decrypt(content,mode='RSA'){
if(!content){
console.log("输入内容为空");
return "";
}
let res;
let key;
switch(mode){
case 'RSA':
//开发测试解密
key = "XXX"
console.log('要解密的内容',content);
RSA.setPrivateKey(key);
res = RSA.decrypt(content);
console.log("解密后的数据res",res);//这里打印出来是null 因为太长了
break;
}
return res;
}
4 回答
largeQ
TA贡献2039条经验 获得超7个赞
我也正在用这个库,前几天试过,将一大段JSON字符串,按117个字符分组,然后 单组用RSA加密,即用public key加密,对方只能用私钥解密,然后把分组加密的字符串,写到一个JSON里面,这样能动作成功,对方也能解密成功,但是比较慢,明显地要等一段时间,
所有,比较好的解决办法是,只涉及到敏感的字段用RSA加密,其它的不加密,
最后的总字符串用sha256来取得一个摘要,最后只把摘要做RSA加密,把原文,经RSA加密后的摘要发送给对方,
对方收到后,用私钥解开摘要,并且重新对原字符做一次摘要,比对两次摘要是否相等,就可以,这个也是支付宝支付使用的办法。
慕妹3146593
TA贡献1820条经验 获得超9个赞
不建议使用RSA加密大量数据 因为会有性能问题。但是我们后台已经做完了,所以不能更改了,一开始我们也是自己使用js写了一个分段加解密的,可以使用,但是遇到了一些问题,在加解密中如果分段的部分包括正文字符再次合并解密后会出现乱码。最终还是将解密部分放到原生了。
添加回答
举报
0/150
提交
取消