我正在使用Web服务,我想将字节数组作为字符串发送,然后获取原始的字节数组。
我再次解释,我的服务器端具有加密消息的作用,所以我有一个字节数组。

 Cipher cipher = Cipher.getInstance("RSA");
 cipher.init(cipher.ENCRYPT_MODE,clefPrivee);
 byte[] cipherText= cipher.doFinal(msgEnOctets);
然后发送此加密的消息,我将其作为字符串发送,因为我正在发送整个数据帧
代码 :
cipherText.toString();
所以我将数组作为字符串,但是什么都没有改变。
我如何找回原画?
谢谢

最佳答案

一种常见的发送字节数组的方法是在发送字节数组之前在Base64中对其进行编码,另一方面,当接收到字符串时,必须对它进行解码以获取原始字节数组。例如:
发件人:

Cipher cipher = Cipher.getInstance("RSA");
cipher.init(cipher.ENCRYPT_MODE,clefPrivee);
byte[] cipherText= cipher.doFinal(msgEnOctets);
return Base64.getEncoder().encodeToString(cipherText);
接收者:
public void getMessage(String message) {
    byte[] decodeMessage = Base64.getDecoder().decode(message);
    //...
}

关于java - 字节数组到字节数组的字符串(RSA和Java),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/63489517/

10-12 16:11