4

クライアントアプリとサーバーアプリが異なるマシンで実行されていると想定します

今日:

// Server will receive the request and cast it as needed
ProxyResponse message = (ProxyResponse) objStream.readObject();

// Update message with some content
...

// Sent it back to client
ObjectOutputStream oos = new ObjectOutputStream(toClient);
oos.writeObject(message);

送信されるデータが何らかの形で保護されるように、これをさらに強化したいと思います。これにどのようにアプローチすることをお勧めしますか?

クライアントとサーバーの間で渡されるデータが両端で暗号化および復号化され、SSLを介して送信される方法の例を探しています。

4

2 に答える 2

12

JDKは、 開始するのに適切な場所と思われるSSLソケットの実装を提供します。使い方は簡単です。

元々、あなたはおそらく次のようなコードを持っています:

final SocketFactory factory = SocketFactory.getDefault();
final Socket socket = factory.createSocket(host, port);

工場を変更するだけです。

final SocketFactory factory = SSLSocketFactory.getDefault();
final Socket socket = factory.createSocket(host, port);

同じことが。にも当てはまりますServerSocketFactory

于 2012-04-25T22:47:27.040 に答える
3

非対称または対称ベースの暗号化を使用できます。BouncyCastleライブラリを見てください。対称鍵暗号化を使用すると、これは、データの暗号化に使用される共有鍵を両側に持つのと同じくらい簡単になります。

あなたの更新された答えに基づいて、私はあなたが調べるべきであることに同意しますSSLSocket

于 2012-04-25T22:48:22.047 に答える