-
名词解释
- 密钥:
用于加密/解密的钥匙
密钥本质上是非常非常大的数。密钥的尺寸用位(bit)来衡量,1024位密钥代表的数是非常巨大的。 在公开密钥加密方法中,
密钥的尺寸越大,密文就越安全。
假定有相同的明文和相同的算法,不同的密钥会生成不同的密文。
- 明文:
加密前的信息 - 密文:
加密后的信息 - 加密:
就是使用加密算法把明文生成密文的过程(可逆加密使用密钥与加密算法一块进行加密,不可逆加密不使用密钥) - 加密算法:
加密的规则方式
-
加密算法分类
加密算法分为:
可逆加密和不可逆加密,
可逆加密又可以分为:对称加密和非对称加密。
- 不可逆加密算法 :
指不可以从密文中推算出明文的加密算法( 数据一旦加密,没有与之对应的秘钥进行解密 )
有MD5、HMAC、SHA1、SHA-224、SHA-256、SHA-384、SHA-512等算法
不可逆加密算法的特征是加密过程中不需要使用密钥,输入明文后由系统直接经过加密算法处理成密文,这种加密后的数据是无法被解密的
例如: MD5是一种不可逆的加密方式,虽然现在很多算法也可以将md5解密出来,但是md5还是具有很大程度上的不可逆。
MD5通常被用在用户登录信息的加密处理,服务器的数据库存的就是这个被加密后的字符串,用户在登录时服务器只要比较你客户端发送的md5字符串和它数据库字符串相同就可以正常登录了.
MD5算法有以下特点:
1、压缩性:无论数据长度是多少,计算出来的MD5值长度相同
2、容易计算性:由原数据容易计算出MD5值
3、抗修改性:即便修改一个字节,计算出来的MD5值也会巨大差异
4、抗碰撞性:知道数据和MD5值,很小概率找到相同MD5值的原数据。
5、相同的数据得到的md5值是相同的
- 可逆加密算法:
指可以通过特定秘钥从密文中推算出明文的加密算法
对称加密:
在数据加密和解密的时用的都是同一个密钥,有DES、AES等算法
非对称加密:非对称加密中有两个密钥,【公钥】、【私钥】;这两个密钥是不同,不对称,有DH、DSA、RSA、ECC等
非对称加密
公钥:配合加密算法生成密文,是公开给任何人使用的,公钥加密的数据只能由私钥能解
私钥: 用来解密密文 ,是保密的,由消息接收者自己保管的,不能公开;私钥加密的数据只能由公钥能解
公钥和私钥是一 一对应的,是不能单独生成的,一对公钥和密钥统称为密钥对(key pair)
解决问题: 非对称加密能解决密钥传递的问题,我们访问的网站私钥是秘密保管的,对外公开公钥;这样就算消息被黑客截取到了,那么没有私钥也解不出消息报文
-
混合加密
是不是就可以认为使用非对称加密替代加密算法了呢?
肯定不是,因为非对称加密都是基础复杂的数学难题,运行速度上很慢,性能不是很给力;
仅仅使用非对称加密虽然解决了安全,但是速度不行;
比如 消息发送方为A, 消息接收方为B
- B生成公钥与私钥, 把公钥给到A
- A接收到公钥后,把在对称加密中使用的密钥进行加密
- B使用私钥对密钥进行解密 接下来,A就可以使用这个经过加密的密钥对数据加密,然后发送给B就好了