哈希函数又称为单向散列函数,任意长度经过哈希函数变成一个固定的值,且具有不可逆性。输入相同,输出一定相同,不同的输入数据想要获得相同的输出很难,概率很低。
常见的哈希算法如:MD5、SHA1(有衍生系列)、HMAC(基于秘钥的哈希运算)保证了完整性和来源真实性
可用作判断数据的完整性,例如A发送数据以及经过哈希后的值,B接受使用相同的哈希函数计算的值与A发送的值作为对比
判断数据的完整性(即是否被修改),但是并不能判断数据的真实性,即数据是否是A本人发送,有可能是C伪装成A。
对称加密算法:使用相同的秘钥来加密解密,秘钥分发困难(通过网络发送秘钥,被截取危险)。适用于大量数据的加密
如:DES(数据加密标准) 3DES(三次的DES) AES(高级加密标准)速度快,安全级别高
非对称加密算法:使用公钥和私钥,使用对方的公钥加密,对方使用自己的私钥解密,公钥公开也不怕被截取。适用于少量数据的加密
如:RSA ECC椭圆曲线密码编码学
数字签名:
其实就是利用算法(不一定是非对称算法)对原文hash值加密,然后附着到原文的一段数据。数字签名的作用就是验证数据来源以及数据完整性!解密过程则称为数字签名验证。(数据的真实性,不可抵赖)