加密算法有哪几种?
对称加密算法;
非对称加密算法;
Hash 算法
常见的加密算法可以分成三种:
对称加密算法;
非对称加密算法;
Hash 算法;
接下来我们就来看看这些算法。
对称加密算法
对称加密算法,如其名,就是使用同一个秘钥进行加密和解密。
优点是速度较快,适合对数据量比较大的数据进行加密。算法公开、计算量小、加密速度快、加密效率高。
缺点是秘钥的管理和分发非常困难,不够安全。密钥的保存方式需要保证,一旦加密或者解密的哪一方泄漏了密钥,都会导致信息的泄漏。
常用的对称加密算法有:DES、3DES、DESX、Blowfish、IDEA、RC4、RC5、RC6、AES。
DES
DES 加密算法是一种分组加密算法,以 64 位为分组对数据进行加密,他的密钥长度为 56 位,速度较快,适合用于大量数据加密的场合。
3DES
基于 DES 加密,对一块数据使用三个不同的密钥进行加密三次,强度更高。
AES
高级加密标准,是新一代加密算法标准,取代 DES,速度快,安全级别高。密钥长度最少支持 128、192、256,分租长度 128 位。
非对称加密
logo
与对称加密相对的,非对称加密需要两个密钥,一个公开密钥(Public Key),一个私有密钥(Private Key)。公钥和私钥是一对,如果使用公钥进行加密的数据,只有对应的私钥才能解密。相对的,如果是使用私钥加密的数据,只有对应的公钥才能解密。
优点是公钥可以被任何人知道,而公钥的泄漏也不会导致信息泄漏,但是一旦私钥泄漏了就会导致信息泄漏。
常用的非对称加密算法有:RSA、ECC(移动设备用)、Diffie-Hellman、El Gamal、DSA(数字签名用)。
RSA
RSA 加密算法是目前最有影响力的公钥加密算法,并且被普遍任务是最优秀的公钥方案之一。RSA 是第一个能同时加密和数字签名的算法,它能够抵抗到目前为止已知的所有密码攻击。
RSA 算法基于一个十分简单的数论事实:将两个大素数相乘十分容易,但是如果想要对其进行因式分解却极其困难,因此可以将乘积公开作为密钥。
ECC
ECC 使用的是椭圆曲线编码学,相对于 RSA,ECC 的抗攻击性更强,并且计算量小,处理速度快,存储空间占用小,所以适用于移动设备使用。
Hash 算法
logo
Hash 算法(哈希散列算法)特别之处在于它是一种单向算法,即不可逆,用户可以通过 Hash 算法对目标信息生成一段特定长度的唯一的 Hash 值,但是却不能通过这个 Hash 值重新获得目标信息。
因为此特点,Hash 算法通常用在存储不可还原的密码存储,信息完整校验等地方。
常用的 Hash 算法有:MD2、MD4、MD5、HAVAL、SHA、SHA-1、HMAC、HMAC-MD5、HMAC-SHA1。
MD5
MD5 加密算法可以简单的分析为以 512 位分组来处理输入的信息,且每一个分组又被划分为 16 个 32 位的子分组,经过一系列的处理之后,算法的输出由 4 个 32 位分组组成,将这 4 个 32 位分组级联后就会生成一个 128 位散列值。
MD5 大多被用于软件的密码认证和钥匙识别上。
SHA1
SHA1 和 MD5 一样是流行的信息摘要算法。对于长度小于 2’64 位的消息,SHA1 会生成一个 160 位的信息摘要,当接收到消息的时候,这个消息摘要可以用来验证数据的完整性,在传输的过程中,数据很可能发生变化,那么这时候就会生成不同的信息摘要。SHA1 不可以从消息摘要中复原信息,而两个不同的消息不会产生同样的信息摘要。这样,SHA1 就可以用来验证数据的完整性。
评论