Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Java套接字将加密添加到自己的基于TCP的协议中?_Java_Sockets_Encryption_Tcp - Fatal编程技术网

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

如何使用Java套接字将加密添加到自己的基于TCP的协议中?,java,sockets,encryption,tcp,Java,Sockets,Encryption,Tcp,因此,我有一个工作协议,客户端需要使用用户和密码进行身份验证才能登录服务器。然后服务器和客户端将交换消息和文件。一切正常,我正在使用输入/输出流。 我还需要为对话和用户/密码身份验证添加加密。我不想在我的jar中存储对称密钥,所以我想我需要一个公钥/私钥。 我知道我可以使用公共/私有加密发送对称密钥,但我真的不知道如何在Java中做到这一点。我想我可以对信息使用加密,而不是文件传输 我在谷歌上搜索了一下,发现了各种使用java套接字加密的方法,最好(正确)的方法是什么?使用CipherOutpu

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

我在谷歌上搜索了一下,发现了各种使用java套接字加密的方法,最好(正确)的方法是什么?使用CipherOutput(输入)流?还是有别的办法


如果有人能发布一段代码,我将不胜感激。请参阅javax.net.ssl和JSSE参考指南。

如果您正处于时间的束缚中,您可以利用它

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

然后在客户端上设置端口转发SSH会话(SSH客户端上的-L选项)


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

谢谢,它看起来非常简单,但是我也可以将它与NIO一起用于服务器吗?是的,但难度很大。请看这本书。这也是一个好主意,但我需要作为一个商业软件来实现,并且不能用任何防火墙规则来计算。