使用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;
}
我也正在用这个库,前几天试过,将一大段JSON字符串,按117个字符分组,然后 单组用RSA加密,即用public key加密,对方只能用私钥解密,然后把分组加密的字符串,写到一个JSON里面,这样能动作成功,对方也能解密成功,但是比较慢,明显地要等一段时间,
所有,比较好的解决办法是,只涉及到敏感的字段用RSA加密,其它的不加密,
最后的总字符串用sha256来取得一个摘要,最后只把摘要做RSA加密,把原文,经RSA加密后的摘要发送给对方,
对方收到后,用私钥解开摘要,并且重新对原字符做一次摘要,比对两次摘要是否相等,就可以,这个也是支付宝支付使用的办法。