一、对称密钥:
OpenSSL 一共提供了8 种对称加密算法
每种对称加密算法都支持一下四种模式:
电子密码本模式 (ECB) |
将加密的数据分成若干组,每组的大小跟加密密钥长度相同,然后每组都用相同的密钥进行加密 |
加密分组链接 (CBC) |
将明文分成固定长度的块,然后将前面一个加密块输出的密文与下一个要加密的明文块进行异或操作,将计算结果再用密钥进行加密得到密文。第一明文块加密的时候,因为前面没有加密的密文,所以需要一个初始化向量。 |
加密反馈模式 (CFB) |
面向字符的应用程序的加密要使用流加密法,可以使用加密反馈模式。在此模式下,数据用更小的单元加密,如可以是8位,这个长度小于定义的块长(通常是64位)。 |
输出反馈模式 (OFB) |
与CFB相似,惟一差别是,CFB中密文填入加密过程下一阶段,而在OFB中,初始化向量加密过程的输入填入加密过程下一阶段。 |
默认分组长度:64bits
AES 使用的加密反馈模式(CFB)和输出反馈模式(OFB)分组长度是128 位
二、非对称
OpenSSL 一共实现了4 种非对称加密算法
DH 算法 |
一般用户密钥交换 |
RSA 算法 |
密钥交换,数字签名, 也可用于数据加密(速度慢) |
DSA 算法 |
一般只用于数字签名 |
椭圆曲线算法(EC) |
三、信息摘要算法
OpenSSL 实现了5 种信息摘要算法,
MD2 |
|
MD5 |
|
MDC2 |
|
SHA(SHA1) |
|
RIPEMD |