当前位置: 首页 > 知识库问答 >
问题:

SSL和TLS的区别及其在Java中的使用

韩阳成
2023-03-14

我试图建立一个SSL或TLS连接之间的Java客户端和服务器我设置。

我一直在使用< code > SSL context . getinstance(" SSL ")来构建< code>SSLContext,它工作正常。

我想知道协议参数在SSLContext中的用途。getInstance(字符串协议)

特别是,使用< code > SSL context . getinstance(" SSL ")和< code > SSL context . getinstance(" TLS ")或其他可能的值之间有什么变化?

共有2个答案

孔斌
2023-03-14

协议用于服务器和客户端之间的通信。因此,SSLContext(字符串协议)返回协议的实例,然后使用该服务器或客户端进行安全级别的通信。

有关更多参考,请参阅此链接。http://www.herongyang.com/JDK/SSL-java-net-ssl-SSLContext-Class-Test.html

沈琛
2023-03-14

这是我不久前写的一个相当详细的答案,描述了SSL和TLS之间的区别。简而言之,TLS是SSL的继承者,TLS 1.0可以被认为是“SSL 3.1”。

如果您查看《JSSE参考指南》,在SSLContext部分,它说:

这些静态方法各自返回一个实例,该实例至少实现所请求的安全套接字协议。返回的实例也可以实现其他协议。例如,getInstance(“TLSv1”)可能返回一个实现“TLSv1”、“TLSv1.1”和“TLSv1.2”的实例。

这在“标准名称”文档中也有提及。

特别是,如果您检查Oracle/OpenJDK 7源代码中的SSLContextImpl,您会发现它的所有<code>SSLContex</code>都支持所有协议(从使用SSLv2客户端的SSLv3到TLS 1.2)。不同之处在于默认启用了哪些协议。此外,您一般不应该依赖于此,因为其他Java实现(例如IBMJRE)的行为可能会有所不同。

如果您希望某个连接使用一组特定的协议,您应该使用< code>SSLSocket或< code>SSLEngine的< code>setEnabledProtocols方法。否则,它将使用缺省值,如提供者文档中所述。

 类似资料:
  • Jar和java中的插件有什么区别?两者看起来是一样的,因为实现了相同的目的,什么时候使用Jar和什么时候使用插件。

  • 本文向大家介绍Java中的Vector和ArrayList区别及比较,包括了Java中的Vector和ArrayList区别及比较的使用技巧和注意事项,需要的朋友参考一下 Vector  和  ArrayList 比较 有时用Vector更好一点,有时用ArrayList更好一点,不能准确容易的给出答案,因为要视具体情况而定,有四个主要考虑的因素: 1:API 2: 同步(synchronizat

  • 我正在研究MQTT协议。我配置了它的服务器,并使用端口1883上的Mosquito库用java进行了通信。现在,我想让这种通信更加安全。据我所知,8883端口是为其基于tls的安全通信保留的。它需要X.509证书。为此,我找到了以下教程。 http://www.embedded101.com/Blogs/PaoloPatierno/entryid/366/mqtt-over-ssl-tls-wit

  • 问题内容: 在java中==和equals的区别? 问题答案: .equals(…) 只会比较所写的内容进行比较,不会多也不会少。 如果一个类没有覆盖equals方法,则默认为equals(Object o)覆盖了该方法的最接近的父类的方法。 如果没有父类提供重写,则它默认为最终父类Object中的方法,因此你只能使用该Object#equals(Object o)方法。根据对象API,这与==;

  • 本文向大家介绍bindParam和bindValue的区别以及在Yii2中的使用详解,包括了bindParam和bindValue的区别以及在Yii2中的使用详解的使用技巧和注意事项,需要的朋友参考一下 bindParam() 和 bindValue() 非常相似。唯一的区别就是前者使用一个 PHP 变量绑定参数, 而后者使用一个值。对于那些内存中的大数据块参数,处于性能的考虑,应优先使用前者。

  • 本文向大家介绍java和 javaw 及 javaws的区别解析,包括了java和 javaw 及 javaws的区别解析的使用技巧和注意事项,需要的朋友参考一下 java  ,javaw   和  javaws 的区别: 首先,所有的这些都是java的启动装置,java.exe经常使用,当使用命令行输出到window的时候,会有java.exe进程,通过任务管理器可以看到。通常 我们执行一些小的