如何使用Java套接字将加密添加到自己的基于TCP的协议中?
因此,我有一个工作协议,客户端需要使用用户和密码进行身份验证才能登录服务器。然后服务器和客户端将交换消息和文件。一切正常,我正在使用输入/输出流。 我还需要为对话和用户/密码身份验证添加加密。我不想在我的jar中存储对称密钥,所以我想我需要一个公钥/私钥。 我知道我可以使用公共/私有加密发送对称密钥,但我真的不知道如何在Java中做到这一点。我想我可以对信息使用加密,而不是文件传输 我在谷歌上搜索了一下,发现了各种使用java套接字加密的方法,最好(正确)的方法是什么?使用CipherOutput(输入)流?还是有别的办法如何使用Java套接字将加密添加到自己的基于TCP的协议中?,java,sockets,encryption,tcp,Java,Sockets,Encryption,Tcp,因此,我有一个工作协议,客户端需要使用用户和密码进行身份验证才能登录服务器。然后服务器和客户端将交换消息和文件。一切正常,我正在使用输入/输出流。 我还需要为对话和用户/密码身份验证添加加密。我不想在我的jar中存储对称密钥,所以我想我需要一个公钥/私钥。 我知道我可以使用公共/私有加密发送对称密钥,但我真的不知道如何在Java中做到这一点。我想我可以对信息使用加密,而不是文件传输 我在谷歌上搜索了一下,发现了各种使用java套接字加密的方法,最好(正确)的方法是什么?使用CipherOutpu
如果有人能发布一段代码,我将不胜感激。请参阅javax.net.ssl和JSSE参考指南。如果您正处于时间的束缚中,您可以利用它 您将在服务器上设置防火墙规则,允许仅从防火墙主机直接访问明文端口 然后在客户端上设置端口转发SSH会话(SSH客户端上的-L选项)
然后,客户端计算机将在转发端口上与本地主机进行明文对话,所有对话都将通过SSH隧道进行加密。谢谢,它看起来非常简单,但是我也可以将它与NIO一起用于服务器吗?是的,但难度很大。请看这本书。这也是一个好主意,但我需要作为一个商业软件来实现,并且不能用任何防火墙规则来计算。