散列算法

MD5算法

MD5用的是哈希函数,它的典型应用是对一段信息产生信息摘要,以防止被篡改。严格来说,MD5 不是一种加密算法而是摘要算法。无论是多长的输入,MD5 都会输出长度为128bits 的一个串 (通常用 16 进制 表示为 32 个字符)。

SHA1算法

SHA1是和MD5一样流行的 消息摘要算法,然而SHA1比MD 的安全性更强。对于长度小于 2 ^ 64 位的消息,SHA1会产生一个 160 位的消息摘要。基于MD5、SHA1的信息摘要特性以及不可逆 (一般而言),可以被应用在检查文件完整性以及数字签名等场景。

名称 安全性 速度
SHA-1
MD5

对称加密算法

名称 密匙名称 运行速度 安全性 资源消耗
DES 56位 较快
3DES 112位或168位
AES 128、192、256位

DES算法

DES加密算法是一种分组密码,以64位为分组对数据加密,它的密钥长度是56位,加密解密用同一算法。
DES加密算法是对密钥进行保密,而公开算法,包括加密和解密算法。这样,只有掌握了和发送方相同密钥的人才能解读由DES加密算法加密的密文数据。因此,破译DES加密算法实际上就是搜索密钥的编码。对于56位长度的密钥来说,如果用穷举法来进行搜索的话,其运算次数为 2 ^ 56 次。

3DES算法

是基于DES的对称算法,对一块数据用三个不同的密钥进行三次加密,强度更高。

AES算法

AES加密算法是密码学中的高级加密标准,该加密算法采用对称分组密码体制,密钥长度的最少支持为128 位、 192 位、256位,分组长度128 位,算法应易于各种硬件和软件实现。这种加密算法是美国联邦政府采用的区块加密标准。

AES本身就是为了取代DES的,AES具有更好的安全性、效率和灵活性。

非对称加密算法

名称 成熟度 安全性 运算速度 资源消耗
RSA
ECC

RSA算法

RSA加密算法是目前最有影响力的公钥加密算法,并且被普遍认为是目前最优秀的公钥方案之一。RSA 是第一个能同时用于加密和数字签名的算法,它能够抵抗到目前为止已知的所有密码攻击,已被 ISO 推荐为公钥数据加密标准。

RSA加密算法基于一个十分简单的数论事实:将两个大素数相乘十分容易,但想要对其乘积进行因式分解 却极其困难,因此可以将乘积公开作为加密密钥。

ECC算法

ECC也是一种非对称加密算法,主要优势是在某些情况下,它比其他的方法使用更小的密钥,比如RSA加密算法,提供相当的或更高等级的安全级别。不过一个缺点是加密和解密操 的实现比其他机制时间长 (相比RSA 算法,该算法对CPU消耗严重)。