在javagui和;C++;服务器

在javagui和;C++;服务器,java,c,ssl,client-server,communication,Java,C,Ssl,Client Server,Communication,我有一个用JAVA设计的GUI,作为客户端,可以远程与用C/C++编写的服务器通信。它们之间的通信是通过插座进行的。但是,发送的消息未加密,容易受到中间人攻击。我想知道保护通信的最佳解决方案是什么,并希望实现SSL。是否可以这样做,如果可以,我应该研究什么工具包。Java包含一个名为JSSE的SSL实现。请参阅javax.net.ssl包的Javadoc。还有一个教程,JDK提供了几个示例。您甚至可能根本不需要修改服务器。你可以站在它前面 警告:使用TLS/SSL,您可能会面临一系列额外的错误情

我有一个用JAVA设计的GUI,作为客户端,可以远程与用C/C++编写的服务器通信。它们之间的通信是通过插座进行的。但是,发送的消息未加密,容易受到中间人攻击。我想知道保护通信的最佳解决方案是什么,并希望实现SSL。是否可以这样做,如果可以,我应该研究什么工具包。

Java包含一个名为JSSE的SSL实现。请参阅javax.net.ssl包的Javadoc。还有一个教程,JDK提供了几个示例。

您甚至可能根本不需要修改服务器。你可以站在它前面


警告:使用TLS/SSL,您可能会面临一系列额外的错误情况,您可能需要报告或记录这些情况,特别是关于证书(错误、过期、由于网络/DNS问题而无法验证)

@MM:他说的是Java客户机,OpenSSL在这种情况下没有任何用处@GyroGearless:OpenSSL是一个工具包,它具有许多特性,例如加密/解密。怎么也帮不上忙?只需一边加密,另一边解密。@MM:OpenSSL是一个很好的工具包,但我不知道有一种简单的方法(JNI绑定?)将其集成到Java应用程序中。也许没有必要这样做,因为Java有SSL“内置”@GyroGearless:记住另一个方面是C/C++,我为这两个方面建议了一个单一的解决方案。在客户端实现JSSE。在服务器上,您只将C++应用程序绑定到本地端口上,仅为127.0.0.1。将StnEnter绑定到公共网络接口,它将传入SSL解密并转发给未修改但不能到达的C++服务器应用程序。