一、对称加密算法
分组加密算法:AES、DES、Blowfish、CAST、IDEA、RC2、RC5
流加密算法:RC4
1、DES
已破解,不再安全,基本没有企业在用了。
是对称加密算法的基石,具有学习价值。
密钥长度56(JDK)、56 / 64(BC)
2、DESede(三重DES)
早于 AES 出现来替代 DES 。
计算密钥时间太长、加密效率不高,所以也基本上不用。
密钥长度112/168(JDK)、128/192(BC)
3、AES
最常用的对称加密算法。
密钥建立时间短、灵敏性好、内存需求低(不管怎样,反正就是好)。
实际使用中,使用工作模式为 CTR(最好用 BC 去实现),此工作模式需要引入 IV 参数(16位的字节数组)。
密钥长度 128 / 192 / 256,其中 192 与 256 需要配置无政策限制权限文件(JDK6)。
填充模式最常用的两种 PKCS5Padding 和 PKCS7Padding,其中后者只有 BC 独有。
4、IDEA
常用的电子邮件加密算法。
工作模式只有 ECB 。
密钥长度128位
5、PBE
综合了消息摘要算法和对称加密算法,最常见的是 PBEWithMD5AndDES。
工作模式只有CBC(已丧失安全性,不推荐使用),所以PBE也不推荐使用了
二、非对称加密算法
OpenSSL一共实现了 4 种非对称加密算法:DH 算法、RSA 算法、DSA 算法和椭圆曲线算法(EC)。
1、DH 算法
DH 是 Diffie-Hellman 的首字母缩写,是 Whitefield 与 Martin Hellman 在1976年提出了一个的密钥交换协议,故其一般用于密钥交换。
2、RSA 算法
既可以用于密钥交换、数字签名、数据加密(缓慢)。
3、DSA 算法
Digital Signature Algorithm,数字签名算法,只用于数字签名。
4、EC 算法
椭圆曲线算法
(SAW:Game Over!)