需求是将随机数加密 ,获得密文以后 在后台输入 。通过密文跟私钥进行解密,
然而这个密文乱码了,怎么破?如图
在线等立马。给分
给你的链接里面有
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 编码。
代码实现参考:https://blog.csdn.net/ldld1717/article/details/71419460
分段加密和分段解密
// 解密时超过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网站,下载补丁