Java安全中的加密引擎与安全提供者详解
1. 加密引擎概述
在Java安全领域,加密引擎主要负责实际的数据加密和解密操作。这些引擎属于Java Cryptography Extension (JCE) 和Java Secure Socket Extension (JSSE) 的一部分,而非核心安全包。
加密引擎能够对任意数据进行加密和解密,这是我们所期望的基本功能。需要注意的是,JCE中的加密引擎并不用于数字签名的生成和验证。数字签名使用其自身的算法对消息摘要进行加密和解密,这些算法仅适用于处理消息摘要大小的数据。这种差异使得数字签名引擎具有可导出性,而加密引擎可能不具备这一特性。
2. 安全提供者架构
Java中的安全提供者基础设施使得数字签名、消息摘要等加密引擎的具体实现能够在运行时被找到,而无需对代码进行修改。Java 2版本1.3自带两个安全提供者,一个执行基于DSA的算法(以及一些其他默认操作),另一个执行基于RSA的算法。此外,Sun还提供了另外两个安全提供者,分别与JCE和JSSE相关。
2.1 安全提供者抽象的概念
安全提供者抽象了两个关键概念:引擎和算法。在这个上下文中,“引擎”实际上就是操作的代名词,Java安全包中已知的某些操作被称为引擎。算法则定义了特定操作的执行方式。
以消息摘要为例,它是一个引擎,是程序员可以执行的操作。消息摘要的概念独立于具体的计算方式,所有消息摘要都具有某些共同特征,将这些共同特征抽象为单一接口的类被称为引擎。引擎通常是抽象的,并且独立于任何特定的算法。
消息摘要可以由特定的算法实现,如MD5或SHA。算法通常以具体类的形式
Java安全:加密引擎与安全提供者详解
超级会员免费看
订阅专栏 解锁全文
4万+

被折叠的 条评论
为什么被折叠?



