散列算法
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消耗严重)。