摘要与加密的区别

1.摘要和加密是两个概念

1.1 消息摘要(Message Digest)

摘要是哈希值,我们通过散列算法比如MD5算法就可以得到这个哈希值。
摘要只是用于验证数据完整性和唯一性的哈希值,不管原始数据是什么样的,得到的哈希值都是固定长度的。
不管原始数据是什么样的,得到的哈希值都是固定长度的,也就是说摘要并不是原始数据加密后的密文,只是一个验证身份的令牌。所以我们无法通过摘要解密得到原始数据

常用的摘要算法有:MD5算法(MD2 、MD4、MD5),SHA算法(SHA1、SHA256、SHA384、SHA512),HMAC算法

1.2 加密

加密是通过 “加密算法” 将 “明文” 加密成 “密文”。
我们可以通过 “密钥” 和 “解密算法” 将 “密文” 还原成 “明文”。

1.3 摘要的理解误区

错误的理解:

通过加密算法得到信息摘要。
可以通过对信息摘要这个加密结果进行解密得到原始数据。

错误纠正:

得到摘要的算法是散列算法,没有所谓的 “加密” 、“解密” 的说法,这些说法其实都是不严谨的,虽然在很多书上都说这么描述的。
摘要只是验证身份的令牌,我们无法通过摘要还原出原始数据。

如:MD5算法是不可逆的,我们无法从算法入手还原出MD5算法处理前的结果。由于MD5是信息-摘要算法,通过摘要是无法得到原始数据的,所以解密这一说法本身就是错误的。

2.摘要的作用

用于信息的验证

使用Hash函数将原始属于作为输入参数,生成固定长度的消息摘要,MD5算法为128位,SHA-1为160位,附在原始数据的尾部,到达目的地,先将原始数据(message)与消息摘要(message digest)分离,然后运行同样的Hash算法,生成自己的消息摘要,比较两个消息摘要,相同则校验通过。

3.常用的加密算法

3.1对称加密算法

所谓对称,就是采用这种加密方法的双方使用方式用 同样的 密钥进行加密和解密。密钥是控制加密及解密过程的指令。算法是一组规则,规定如何进行加密和解密。

常用的算法有:DES、3DES、AES等。

优缺点
对称加密算法的优点是算法公开、计算量小、加密速度快、加密效率高。

对称加密算法的缺点是在数据传送前,发送方和接收方必须商定好秘钥,然后使双方都能保存好秘钥。其次如果一方的秘钥被泄露,那么加密信息也就不安全了。另外,每对用户每次使用对称加密算法时,都需要使用其他人不知道的唯一秘钥,这会使得收、发双方所拥有的钥匙数量巨大,密钥管理成为双方的负担

3.2 非对称性加密算法

与对称加密算法不同,非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatekey)。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。

常用的算法有:RSA、DSA、ECC等。

摘要与加密的区别_第1张图片

哈希算法(Hash)

散列算法(Hash Algorithm),又称哈希算法,杂凑算法,是一种从任意文件中创造小的数字「指纹」的方法。与指纹一样,散列算法就是一种以较短的信息来保证文件唯一性的标志,这种标志与文件的每一个字节都相关,而且难以找到逆向规律。因此,当原有文件发生改变时,其标志值也会发生改变,从而告诉文件使用者当前的文件已经不是你所需求的文件。

你可能感兴趣的:(摘要与加密的区别)