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 回答