JCA
- Java密码体系结构简介:Java Cryptography Architecture (JCA) Reference Guide
- 包含一个“提供者”体系结构和一组用于数字签名,消息摘要(哈希),证书和证书验证,加密(对称/非对称块/流密码),密钥生成管理和安全随机数生成等等。这些API允许开发人员将安全性轻松集成到应用程序代码中。
- JCA包含两个软件组件
- 定义和支持提供者为其提供实现的加密服务的框架。这个框架包含了诸如java.security,javax.crypto,javax.crypto.spec和javax.crypto.interfaces等软件包。
- Sun,SunRsaSign,SunJCE等实际提供者都包含了具体的加密实现。
加密
- 对明文用加密算法,利用密钥进行加密。
- 加密算法
- 单向加密:也就是不可逆的加密, 例如 MD5,SHA1
- 对称加密算法:密方和解密方利用同一个秘钥 DES 3DES
- 非对称加密算法:非对称加密分为公钥和秘钥,二者是非对称 RSA
摘要
- 利用摘要算法,进行对需要摘要明文信息,进行离散。 摘要可以不需要密钥配合
- 摘要算法(哈希算法):MD5 SHA1
签名技术
- 是基于摘要 + 加密的一种手段,对重要信息明文进行摘要算法离散,再用加密技术进行加密
Base64
- base64编码,是用于传输8bit字节代码最常用的编码方式。相关类在sun.misc.BASE64Decoder 和sun.misc.BASE64Encoder 中。
密钥
- 非对称包含公钥和私钥。公私钥的区别在于,公钥是公开的,私钥是不公开的。
- 报文加密:信息发送方公钥加密,接受方私钥解密 (私钥归属方是接受方)
- 签名摘要:信息发送方私钥加密,接受方公钥解密 (私钥归属方是发送方)