首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SSLEngine for JDK1.4的实现?

SSLEngine for JDK1.4的实现?
EN

Stack Overflow用户
提问于 2013-11-05 00:38:01
回答 1查看 1.3K关注 0票数 1

我有一个基于NIO的应用程序,它必须在Java 1.4平台(而不是Sun/Oracle实现)上工作,并且我希望使用SSL保护网络连接。但是Java仅从Java5开始可用。

是否存在替代的、免费的、纯javax.net.ssl.SSLEngine实现的Java?

BouncyCastle似乎提供了JCE的实现,但我在他们的包中没有发现javax.net.ssl.SSLEngine。我错过了什么吗?

EN

回答 1

Stack Overflow用户

发布于 2013-11-06 01:45:33

只有当您想要访问低级SSLEngine功能时,才需要SSL类,而不需要套接字包装。但是,如果您希望使用SSLSocketFactorySSLServerSocketFactory甚至HttpsURLConnection类来保护网络连接,则可以做到这一点。

下面是一个简短的示例代码片段:

代码语言:javascript
复制
SSLContext sslContext = SSLContext.getInstance("TLS");
SSLSocketFactory sf = sslContext.getSSLSocketFactory();
Socket socket = new Socket();
Socket sslSocket = sf.createSocket(socket, "ssl.example.com", 4443, true);
OutputStream out = sslSocket.getOutputStream();
out.write(/* ... */);

请注意,如果您没有使用Sun JDK/JRE实现,"TLS“算法实现可能会缺失,并且SSLContext.getInstance可能会抛出NoSuchAlgorithmException。在这种情况下,您应该使用BouncyCastle安全提供程序。

您可以通过调用以下命令添加BC提供程序:

代码语言:javascript
复制
java.security.Security.addProvider(new BouncyCastleProvider());

并请求特定于BC的SSLContext实现:

代码语言:javascript
复制
SSLContext sslContext = SSLContext.getInstance("TLS", "BC");
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19772481

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档