目录

常见的加密算法可以分成三种:

对称加密算法

DES

3DES

AES

非对称加密

RSA

ECC

Hash算法

MD5

SHA1

算法对比

算法选择


常见的加密算法可以分成三种:

接下来我们就来看看这些算法。

对称加密算法

常用加密算法-LMLPHP

 对称加密算法,如其名,就是使用同一个秘钥进行加密和解密。

优点是速度较快,适合对数据量比较大的数据进行加密。

缺点是密钥的保存方式需要保证,一旦加密或者解密的哪一方泄漏了密钥,都会导致信息的泄漏。

常用的对称加密算法有:DES3DESDESXBlowfishIDEARC4RC5RC6AES

DES

DES加密算法是一种分组加密算法,以64位为分组对数据进行加密,他的密钥长度为56位,速度较快,适合用于大量数据加密的场合。

3DES

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

AES

高级加密标准,是新一代加密算法标准,取代DES,速度快,安全级别高。密钥长度最少支持128、192、256,分租长度128位。

非对称加密

常用加密算法-LMLPHP

与对称加密相对的,非对称加密需要两个密钥,一个公开密钥(Public Key),一个私有密钥(Private Key)。公钥和私钥是一对,如果使用公钥进行加密的数据,只有对应的私钥才能解密。相对的,如果是使用私钥加密的数据,只有对应的公钥才能解密。

优点是公钥可以被任何人知道,而公钥的泄漏也不会导致信息泄漏,但是一旦私钥泄漏了就会导致信息泄漏。

常用的非对称加密算法有:RSAECC(移动设备用)Diffie-HellmanEl GamalDSA(数字签名用)

RSA

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

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

ECC

ECC使用的是椭圆曲线编码学,相对于RSA,ECC的抗攻击性更强,并且计算量小,处理速度快,存储空间占用小,所以适用于移动设备使用。

Hash算法

常用加密算法-LMLPHP

Hash算法(哈希散列算法)特别之处在于它是一种单向算法,即不可逆,用户可以通过Hash算法对目标信息生成一段特定长度的唯一的Hash值,但是却不能通过这个Hash值重新获得目标信息。

因为此特点,Hash算法通常用在存储不可还原的密码存储,信息完整校验等地方。

常用的Hash算法有:MD2MD4MD5HAVALSHASHA-1HMACHMAC-MD5HMAC-SHA1

MD5

MD5加密算法可以简单的分析为以512位分组来处理输入的信息,且每一个分组又被划分为16个32位的子分组,经过一系列的处理之后,算法的输出由4个32位分组组成,将这4个32位分组级联后就会生成一个128位散列值。

MD5大多被用于软件的密码认证和钥匙识别上。

SHA1

SHA1和MD5一样是流行的信息摘要算法。对于长度小于2’64位的消息,SHA1会生成一个160位的信息摘要,当接收到消息的时候,这个消息摘要可以用来验证数据的完整性,在传输的过程中,数据很可能发生变化,那么这时候就会生成不同的信息摘要。SHA1不可以从消息摘要中复原信息,而两个不同的消息不会产生同样的信息摘要。这样,SHA1就可以用来验证数据的完整性。

算法对比

算法选择

对称加密的算法相较于非对称加密算法会快很多,如果需要对大量的数据进行加密时,建议采用对称加密算法,加快加密解密速度。

而对于需要签名的情况,只能使用非对称加密。

当数据量很小,而密钥的管理用来决定数据安全时,最好使用非对称加密。

在选定了算法之后,选择多少位的密钥也是一个难题,一般情况下,密钥越长,运行的速度越慢,所以我们要根据实际需要选择加密的位数,一般来说,RSA采用1024位ECC采用160位AES采用128位

04-14 12:24