常见加密算法

加密算法分为对称加密、非对称加密和Hash算法。

对称加密

加密和解密使用相同的秘钥的加密算法。优点在于加解密的高速度和使用长秘钥时的难**性。
常见的对称加密算法有DES、3DES、AES。

AES

高级加密标准(AES,Advanced Encryption Standard)为最常见的对称加密算法(微信小程序加密传输就是用这个加密算法的)。具体的加密流程如下图:
常见加密算法

明文P:
没有经过加密的数据。
秘钥K:
用来加密明文的密码,秘钥由双方协商产生,是不可以直接在网络上面传输的,否则会导致秘钥泄露。通常是通过非对称加密算法加密秘钥,然后再通过网络传输给对方,或者直接面对面商量秘钥。秘钥时绝对不可以泄露的,否则会被攻击者还原密文,窃取机密数据。

AES加密函数:
设AES加密函数为E,则C=E(K,P)其中P为明文,K为秘钥,C为密文。也就是说,吧明文P和秘钥K作为加密函数的参数传入,则加密函数E会输出密文C。

DES

DES算法的入口参数有三个:Key、Data、Mode。

Key为8个字节共64位,是DES算法的工作**;

Data也为8个字节64位,是要被加密或被解密的数据;

Mode为DES的工作方式,有两种:加密或解密。
常见加密算法
常见加密算法

DES现在已经不是一种安全的加密方法,主要因为它使用的56位**过短。1999年1月,distributed.net与电子前哨基金会合作,在22小时15分钟内即公开**了一个DES**。也有一些分析报告提出了该算法的理论上的弱点,虽然在实际中难以应用。为了提供实用所需的安全性,可以使用DES的派生算法3DES来进行加密,虽然3DES也存在理论上的攻击方法。

3DES

密码学中,三重数据加密算法(英语:Triple Data Encryption Algorithm,缩写为TDEA,Triple DEA),或称3DES(Triple DES),是一种对称**加密块密码,相当于是对每个数据块应用三次数据加密标准(DES)算法。由于计算机运算能力的增强,原版DES密码的**长度变得容易被暴力**;3DES即是设计用来提供一种相对简单的方法,即通过增加DES的**长度来避免类似的攻击,而不是设计一种全新的块密码算法。

非对称加密

指加密和解密使用不同**的加密算法,也称为公私钥加密。
由于公钥是可以公开的,用户只要保管好自己的私钥即可,因此加***的分发将变得十分简单。同时,由于每个用户的私钥是唯一的,其他用户除了可以可以通过信息发送者的公钥来验证信息的来源是否真实,还可以确保发送者无法否认曾发送过该信息。非对称加密的缺点是加解密速度要远远慢于对称加密

RSA

RSA的安全性是基于极其困难的大整数的分解(两个素数的乘积),有了公钥和**,就能进行加密和解密了。

假设鲍勃要向爱丽丝发送加密信息m,他就要用爱丽丝的公钥 (n,e) 对m进行加密。将使用公钥加密后的数据发送给爱丽丝,爱丽丝拿到鲍勃发过来的信息之后,使用自己的私钥解密,就拿到了原文。

DSA

DSA 一般用于数字签名和认证。 DSA是基于整数有限域离散对数难题的,其安全性与RSA相比差不多。
在DSA数字签名和认证中,发送者使用自己的私钥对文件或消息进行签名,接受者收到消息后使用发送者的公钥来验证签名的真实性。DSA只是一种算法,和RSA不同之处在于它不能用作加密和解密,也不能进行**交换,只用于签名,它比RSA要快很多.
第一步:生成一个**(私钥)
第二步:生成公钥
第三步:使用私钥签名
第四步:使用公钥验证