JSSE和JCE之间有什么区别。这两种方法在一个广泛的案例中都涉及到加密。我的问题可能不是很清楚。既然JCE提供了加密,我们可以使用它来加密数据,那么为什么我们需要将JSSE用于同样提供加密的安全套接字呢?
发布于 2018-06-29 06:23:31
Java加密扩展(JCE)为应用服务器提供加密、密钥和散列算法。JCE为加密、密钥生成、密钥协商和消息验证码算法提供了一个框架和实现。对加密的支持包括对称、非对称、块和流密码。
而JSSE为应用服务器提供传输安全性。JSSE提供应用程序编程接口(API)框架以及安全套接字层和传输层安全协议的API实现,包括数据加密、消息完整性和身份验证功能。
发布于 2018-06-29 06:24:44
JCE或更确切地说,JCA提供了一种用于提供所谓的加密原语的体系结构。加密原语是加密构造的特定形式。例如,它为Cipher提供了CBC模式下的3DES和GCM模式下的AES等原语,这提供了密码密码的抽象。其他的是SHA-1和SHA-256作为加密散列,由MessageDigest类表示。
但是,JSSE为一组称为SSL和TLS的特定协议提供了体系结构。这些协议可以建立在由JCE提供的加密原语之上。JSSE提供了诸如证书验证和验证之类的抽象,不同的JSSE提供者可以使用这些抽象来实现具有X.509身份验证的TLS - TLS最常见的身份验证方法。TLS是一组需要实现的复杂协议和密码组。
JCE/JCA的加密提供程序--比如Oracle提供的标准JDK提供的默认加密提供程序--提供了某些原语,这并不意味着它们会自动集成到JSSE提供程序中;就像拥有一袋美味的坚果一样,它们不会自动出现在您的苹果派上。它们需要被编程到JSSE提供程序中,以使它们在TLS连接中工作。
https://stackoverflow.com/questions/51079815
复制相似问题