Java保护网络流量

Java保护网络流量,java,Java,首先,我在谷歌上搜索了如何保护网络流量,我找到了很多答案。。。唯一的问题是,我发现了太多的示例和方法,而且大多数都非常陈旧(>10年),所以这让我有点担心 我想知道的是如何加密服务器和客户端之间的网络流量 我有一门关于它的学士学位课程,据我所知,我需要一对私人公钥来加密和解密。然而,我可能错过了一些重要的概念,因为我现在有一个关于这个问题的问题:当密钥是网络安全所需的密钥时,如何通过网络发送密钥?我是否必须处理它,或者Java中是否有内置的安全网络应用程序 我在课堂上还看到,讲师需要手动验证一些

首先,我在谷歌上搜索了如何保护网络流量,我找到了很多答案。。。唯一的问题是,我发现了太多的示例和方法,而且大多数都非常陈旧(>10年),所以这让我有点担心

我想知道的是如何加密服务器和客户端之间的网络流量

我有一门关于它的学士学位课程,据我所知,我需要一对私人公钥来加密和解密。然而,我可能错过了一些重要的概念,因为我现在有一个关于这个问题的问题:当密钥是网络安全所需的密钥时,如何通过网络发送密钥?我是否必须处理它,或者Java中是否有内置的安全网络应用程序

我在课堂上还看到,讲师需要手动验证一些键代码,以100%确定有人在发送消息(手动方式,如查看其他人的屏幕并比较键,以查看它们是否确实相同)

我目前正在使用套接字,我甚至不确定在Java中是否可以用不同的方式进行联网。我想知道如何实现安全联网

任何相关材料的链接都很感谢,如果有,我想知道最好的解决方案。如果链接/文章已注明日期,请证明其在5年或10年后仍可使用

关于。

使用(如图书馆)

如果您想使用自己的安全性,则使用加密数据;Java具有内置的支持或AES,或者您可以使用该库。然后使用对AES密钥进行加密,并将加密密钥和AES加密数据从服务器发送到客户端;客户端解密密钥,然后使用该密钥解密AES加密的数据

使用(如图书馆)

如果您想使用自己的安全性,则使用加密数据;Java具有内置的支持或AES,或者您可以使用该库。然后使用对AES密钥进行加密,并将加密密钥和AES加密数据从服务器发送到客户端;客户端解密密钥,然后使用该密钥解密AES加密的数据


如果您正在构建web服务,只需将其部署到某个容器(tomcat、Jetty等)中,并将其配置为使用SSL证书。标准实现称为SSL,这就是SSL的工作方式。有数千种实现—大多数(所有?)web服务器都支持基于证书的即时身份验证。很抱歉,我不清楚这一点,我使用的是独立的cleint,而不是web服务。如果要构建web服务,只需将其部署到某个容器(tomcat、Jetty等)中即可,并将其配置为使用SSL证书。有数千种实现—大多数(所有?)web服务器都支持基于证书的即时身份验证。很抱歉,我不清楚这一点,我使用的是独立的cleint,而不是web服务。您仍然会通过网络发送RSA加密的AES密钥,对吗?攻击者不能自己解密AES密钥吗?还是一切都100%安全?换句话说:为什么客户端可以解密AES密钥,而攻击者不能?@skiwi,因为RSA是公钥(或非对称)密码系统,而AES是私钥(或秘钥或对称)密码系统;RSA和其他公钥密码系统专门设计用于通过不安全的网络安全地发送数据。上的Wikipedia页面可以比我解释得更好。@skiwi注意到,公钥加密在计算上比私钥加密昂贵得多,而且有时对可以加密的数据大小也有限制-这就是为什么您同时使用公钥和私钥加密来发送消息,而不仅仅是使用公钥加密。你仍然会通过网络发送RSA加密的AES密钥,对吗?攻击者不能自己解密AES密钥吗?还是一切都100%安全?换句话说:为什么客户端可以解密AES密钥,而攻击者不能?@skiwi,因为RSA是公钥(或非对称)密码系统,而AES是私钥(或秘钥或对称)密码系统;RSA和其他公钥密码系统专门设计用于通过不安全的网络安全地发送数据。上的Wikipedia页面可以比我解释得更好。@skiwi注意到,公钥加密在计算上比私钥加密昂贵得多,而且有时对可以加密的数据大小也有限制-这就是为什么您同时使用公钥和私钥加密来发送消息,而不仅仅是使用公钥密码。