使用jsencrypt 解密字符串過長后解密內(nèi)容為Null 求解怎么辦??地址jsencrypt :https://github.com/travist/js...網(wǎng)站找了一些但是都不能用 很多都是不全的 求解這個問題怎么解決啊?
import JSEncrypt from 'jsencrypt';
var RSA = new JSEncrypt();
/*
解密數(shù)據(jù)
* content 內(nèi)容(String)
* mode 方法(String)
* */
static decrypt(content,mode='RSA'){
if(!content){
console.log("輸入內(nèi)容為空");
return "";
}
let res;
let key;
switch(mode){
case 'RSA':
//開發(fā)測試解密
key = "XXX"
console.log('要解密的內(nèi)容',content);
RSA.setPrivateKey(key);
res = RSA.decrypt(content);
console.log("解密后的數(shù)據(jù)res",res);//這里打印出來是null 因為太長了
break;
}
return res;
}
4 回答

largeQ
TA貢獻2039條經(jīng)驗 獲得超8個贊
我也正在用這個庫,前幾天試過,將一大段JSON字符串,按117個字符分組,然后 單組用RSA加密,即用public key加密,對方只能用私鑰解密,然后把分組加密的字符串,寫到一個JSON里面,這樣能動作成功,對方也能解密成功,但是比較慢,明顯地要等一段時間,
所有,比較好的解決辦法是,只涉及到敏感的字段用RSA加密,其它的不加密,
最后的總字符串用sha256來取得一個摘要,最后只把摘要做RSA加密,把原文,經(jīng)RSA加密后的摘要發(fā)送給對方,
對方收到后,用私鑰解開摘要,并且重新對原字符做一次摘要,比對兩次摘要是否相等,就可以,這個也是支付寶支付使用的辦法。

慕妹3146593
TA貢獻1820條經(jīng)驗 獲得超9個贊
不建議使用RSA加密大量數(shù)據(jù) 因為會有性能問題。但是我們后臺已經(jīng)做完了,所以不能更改了,一開始我們也是自己使用js寫了一個分段加解密的,可以使用,但是遇到了一些問題,在加解密中如果分段的部分包括正文字符再次合并解密后會出現(xiàn)亂碼。最終還是將解密部分放到原生了。
添加回答
舉報
0/150
提交
取消