如何保护客户端/服务器套接字通信

假设客户端和服务器应用程序在不同的计算机上运行

今天:

// 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发送。

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也是如此。

您可以使用非对称或对称加密。 看看BouncyCastle库。 使用对称密钥加密,这将非常简单,因为每一方都有一个用于加密数据的共享密钥。

根据您更新的答案,我同意您应该查看SSLSocket