jsencrypt 长字符串分段解密有人了解吗?

使用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;
    }
阅读 7.8k
4 个回答

我也正在用这个库,前几天试过,将一大段JSON字符串,按117个字符分组,然后 单组用RSA加密,即用public key加密,对方只能用私钥解密,然后把分组加密的字符串,写到一个JSON里面,这样能动作成功,对方也能解密成功,但是比较慢,明显地要等一段时间,

所有,比较好的解决办法是,只涉及到敏感的字段用RSA加密,其它的不加密,
最后的总字符串用sha256来取得一个摘要,最后只把摘要做RSA加密,把原文,经RSA加密后的摘要发送给对方,

对方收到后,用私钥解开摘要,并且重新对原字符做一次摘要,比对两次摘要是否相等,就可以,这个也是支付宝支付使用的办法。

你应该用代码把问题描述出来,这样才有人去回答的

不建议对很长的字符串进行这样的加密,速度堪忧的。

不建议使用RSA加密大量数据 因为会有性能问题。但是我们后台已经做完了,所以不能更改了,一开始我们也是自己使用js写了一个分段加解密的,可以使用,但是遇到了一些问题,在加解密中如果分段的部分包括正文字符再次合并解密后会出现乱码。最终还是将解密部分放到原生了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题