加密API是Java基于java.security(及其子包)的API,用户能用密码学的概念(如数字签名和报文摘要),但又不必关心这些概念的实现甚至实现这些概念所用算法的 实现。
当不可能完全实现算法独立性时,JCA 将为开发人员提供标准的特定算法 API。当实现方法的独立性不可能实现时,JCA 将让开发人员指明所要求的特定实现方法。
加密算法很难,我研究了好长时间,最终还是放弃了。搞不懂那些这样那样的公式,还是只会用就好了。
Java提供了以下7种引擎类(截止Java6.0)
- MessageDigest — 用于计算数据的报文摘要(散列)。
- Signature — 用于对数据进行签名和校验数字签名。
- KeyPairGenerator — 用于生成与指定算法相匹配的公钥和私钥对。
- KeyFactory — 用于将类型为 Key(密钥)的不透明密钥转换为密钥规范(密钥信息的透明表示),反之亦然。
- CertificateFactory 用于创建公钥证书和证书撤消清单(CRL)。
- KeyStore — 用于创建和管理密钥仓库。密钥仓库是密钥的数据库。密钥仓库中的私钥有一个与之关联的证书链,用于认证对应的公钥。密钥仓库还含有来自可信实体的证书。
- AlgorithmParameters — 用于管理某一特定算法的参数,包括编码和解码参数。
- AlgorithmParameterGenerator — 用于生成一组与指定算法相匹配的参数。<