JSSE 和 JCE 有什么区别。这两者都在广泛的情况下处理加密。我的问题可能不清楚。由于 JCE 提供了我们可以用来加密数据的加密,那么为什么我们需要将 JSSE 用于也提供加密的安全套接字?
小智 5
Java Cryptography Extension (JCE) 为应用服务器提供加密、密钥和散列算法。JCE 为加密、密钥生成、密钥协商和消息身份验证代码算法提供了一个框架和实现。对加密的支持包括对称、非对称、块和流密码。
而 JSSE 为应用服务器提供传输安全。JSSE 提供应用程序编程接口 (API) 框架以及安全套接字层和传输层安全协议 API 的实现,包括数据加密、消息完整性和身份验证的功能。
JCE 或者更确切地说 JCA 提供了一种用于提供所谓的加密原语的体系结构。密码原语是密码结构的特定形式。例如,它为 提供了 CBC 模式下的 3DES 和 GCM 模式下的 AES(等等)等原语,它提供了加密密码的抽象。其他还有 SHA-1 和 SHA-256 作为加密哈希值,由CipherMessageDigest。
然而,JSSE 为一组称为 SSL 和 TLS 的特定协议提供了体系结构。这些协议可能是建立在 JCE 提供的加密原语之上。JSSE 提供诸如证书验证和确认之类的抽象,不同的 JSSE 提供商可以使用这些抽象来通过 X.509 身份验证(最常见的 TLS 身份验证方法)来实现 TLS。TLS 是一组需要实施的复杂协议和密码套件。
事实上,加密货币提供商(例如 Oracle 提供的标准 JDK 提供的默认提供程序)提供某些原语这一就像一袋美味的坚果不会让它们自动出现在你的苹果派上一样。它们需要被编程到 JSSE 提供程序中,以使它们在 TLS 连接中工作。
TLS 使用大量加密技术,您可以非常确定加密提供程序保持最新,以允许 JSSE 实现最新/最常见/所需的 TLS 协议版本。可能会出现故障,因为标准 API 中可能缺少与 TLS 和(可能还有 CMS)不直接相关的功能。
| 归档时间: |
|
| 查看次数: |
1153 次 |
| 最近记录: |