如何确保客户端/服务器socket通讯(How to secure a client/ server

2019-07-29 04:18发布

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

今天:

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

Answer 1:

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



Answer 2:

您可以使用非对称或对称基于加密。 看看BouncyCastle的图书馆。 用对称密钥加密,这将是作为每一侧具有用于对数据进行加密的共享密钥一样简单。

基于更新后的答案,我同意,你应该考虑SSLSocket



文章来源: How to secure a client/ server socket communication