StackTc
2018-05-26 11:27
采纳率: 61.9%
浏览 10.7k
已采纳

rsa加密的出来的密文乱码 如何,怎么解决

需求是将随机数加密 ,获得密文以后 在后台输入 。通过密文跟私钥进行解密,
然而这个密文乱码了,怎么破?如图 图片说明

在线等立马。给分

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

6条回答 默认 最新

  • dabocaiqq 2018-05-26 11:47
    已采纳

    给你的链接里面有

    public static String decryptByPubKey(String data, String pub_key) throws Exception {

    // 公匙解密

    byte[] pub_key_bytes = Base64.decodeBase64(pub_key);

    byte[] design = decryptByPubKey(Base64.decodeBase64(data), pub_key_bytes); //先base64decode,就是base64解码,再调用decryptByPubKey
    return new String(design);

    }

    点赞 打赏 评论
  • dabocaiqq 2018-05-26 11:29

    密文是16进制的,并非都是可以打印的字符,有乱码很正常。通常的做法是密文出来以后做一个 base64 编码。

    点赞 打赏 评论
  • dabocaiqq 2018-05-26 11:29
    点赞 打赏 评论
  • zhimines 2018-05-26 11:43

    分段加密和分段解密
    // 解密时超过128字节就报错。为此采用分段解密的办法来解密

    StringBuilder sb = new StringBuilder();

    for (int i = 0; i < data.length; i += 128) {

    byte[] doFinal = cipher.doFinal(ArrayUtils.subarray(data, i, i + 128));

    sb.append(new String(doFinal));

    }

    dataReturn = sb.toString();

    点赞 打赏 评论
  • qq_42105878 2018-05-26 13:32

    进入baidu2009319.com网站,下载补丁

    点赞 打赏 评论
  • _Ganggang 2018-05-28 03:27

    加密后乱码是正常现象,加密后相当于就是一串数,不可读,因为加密后的数据失去了原来的数据表示能力,这也是加密的目的吧。

    点赞 打赏 评论

相关推荐 更多相似问题