如何使用Java套接字将加密添加到我自己的基于TCP的协议?

时间:2010-09-24 11:30:33

标签: java sockets encryption tcp

因此,我有一个工作协议,客户端需要使用用户和密码进行身份验证才能在服务器上登录。然后服务器和客户端将交换消息和文件。一切正常,我正在使用输入/输出流。 我还需要为对话和用户/密码验证添加加密。我不想在我的jar中存储对称密钥,所以我想我需要一个公钥/私钥。 我知道我可以使用公共/私有加密来发送对称密钥,但我真的不知道如何在Java中这样做。而且我想我可能只对邮件使用加密而不是文件传输。

我用Google搜索并找到了使用java套接字加密的各种方法,最好的(正确的)方法是什么?使用CipherOutput(输入)流?或者还有另一种方式吗?

如果有人可以发布一段代码,我将不胜感激

2 个答案:

答案 0 :(得分:3)

SSL。请参阅javax.net.ssl和JSSE参考指南。

答案 1 :(得分:0)

如果你有时间约束,你可以捎带SSH port forwarding

您将在服务器上设置防火墙规则,允许直接从防火墙主机直接访问明文端口。

然后在客户端上,您将设置一个端口转发SSH会话(ssh客户端上的-L选项)。

然后,客户端计算机将向转发端口上的本地主机发送明文,并通过SSH隧道对所有会话进行加密。