JSSE和JCE有什么区别?

时间:2018-06-28 09:52:02

标签: java cryptography

JSSE和JCE有什么区别。两者都涉及加密。我的问题可能不清楚。由于JCE提供了可用于加密数据的加密,那么为什么我们需要对也提供加密的安全套接字使用JSSE?

2 个答案:

答案 0 :(得分:2)

Java密码术扩展(JCE)为应用程序服务器提供了加密,密钥和哈希算法。 JCE为加密,密钥生成,密钥协议和消息认证代码算法提供了框架和实现。对加密的支持包括对称,非对称,块和流密码。

鉴于JSSE提供了Application Server的传输安全性。 JSSE提供了用于安全套接字层和传输层安全性协议的应用程序编程接口(API)框架以及API的实现,其中包括数据加密,消息完整性和身份验证的功能。

答案 1 :(得分:1)

JCE或更确切地说,JCA提供了一个体系结构来提供所谓的密码学原语。密码原语是密码结构的特定形式。例如,它为Cipher提供了诸如CBC模式下的3DES和GCM模式下的AES之类的原语,为MessageDigest提供了一种加密密码的抽象。其他的是由$('path').each(function() { $(this).attr({ "inkscape_label" : $(this).attr('inkscape:label') }); }); 类表示的SHA-1和SHA-256作为加密散列。

但是,

JSSE提供了一组特定的协议的体系结构,称为SSL和TLS。这些协议可以基于JCE提供的密码原语建立。 JSSE提供了诸如证书验证和确认之类的抽象,不同的JSSE提供者可以使用它们来通过X.509身份验证实现TLS,这是TLS身份验证的最常见方法。 TLS是一组需要实现的复杂协议和密码套件。

JCE / JCA的密码提供程序(例如Oracle提供的标准JDK提供的默认提供程序)提供某些原语的事实并不意味着它们会自动集成到JSSE中提供者;就像一袋美味的坚果不会使它们自动出现在您的苹果派上一样。需要将它们编程到JSSE提供程序中,以使其在TLS连接中工作。