我正在开发一个使用AES加密传输数据和文件的聊天服务器应用程序。我正在使用 DataOutputStream 和 DataInputStream 来发送和接收数据以及文件。我正在做的是读取数据或文件对其进行加密,并以字节形式将其写入流中。方法适用于文本和文本文件,但对其他类型的文件不够好。请提出建议以解决此问题。
发件人代码
size = fin.read(b);
byte encrypted[] = new byte[4 * 1024 * 1024];
System.arraycopy(encrypted, 0, message, 128, encrypted.length);
System.out.println(message.length + " " + encrypted.length);
dout.write(message, 0, encrypted.length + 128);
dout.flush();
收件人代码
message = Client.decrypt(key, b, length);
FileOutputStream fout = new FileOutputStream("./" + fileName);
fout.write(message.getBytes());
fout.flush();
fout.close();
问题已解决我将解密数据作为String返回,这会抑制不可读的字符。在没有不可读的情况下写入字节会使文件损坏。感谢大家。