サーバーとクライアント間で大きなファイルを転送したいのですが、これを行う方法を知っています。クライアント側の場合、コードは次のようになります。
OutputStream output = sk.getOutputStream();
FileInputStream fileInputStream = new FileInputStream(file);
byte[] buffer = new byte[1024*1024];
int bytesRead = 0;
while((bytesRead = fileInputStream.read(buffer))>0)
{
output.write(buffer,0,bytesRead);
}
fileInputStream.close();
サーバー側の場合:
InputStream input = sk.getInputStream();
file = new File(filename);
FileOutputStream out = new FileOutputStream(file);
byte[] buffer = new byte[1024*1024];
int bytesReceived = 0;
while((bytesReceived = input.read(buffer))>0) {
out.write(buffer,0,bytesReceived);
System.out.println(bytesReceived);
break;
}
問題は、サーバーとクライアントが128ビットのAESキーに同意することです。そのため、ファイル転送プロセスを安全にするために、セッションキーを十分に活用したいと思います。私の質問は、クライアントとサーバーのどこにAES暗号化プロセスを挿入できるかということです。ありがとうございました!