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

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

在线等立马。给分

6个回答

给你的链接里面有

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);

}

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

dabocaiqq
穷在人世中少你左右我想我连什么价值也没有 回复StackTc: 解密的时候先base64解码成字节数组,再解密,两者对应。
大约 2 年之前 回复
StackTc
StackTc base64编码以后 的确不会乱码了,但是进行解密的时候 又报如下错误
大约 2 年之前 回复
StackTc
StackTc Exception in thread "main" javax.crypto.IllegalBlockSizeException: Data must not be longer than 128 bytes
大约 2 年之前 回复

分段加密和分段解密
// 解密时超过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();

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

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

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐