摘自 https://www.chongdongshequ.com/article/1536572085746.html
为了解决这些信息安全问题的密码技术,从根本上来说,通常具有以下一个或多个特性:
机密性:为了防止信息被窃听,因此需要对信息进行加密,对应的密码技术主要就是对称加密和非对称加密。
完整性:为了防止信息被篡改,因此需要对信息进行完整性校验,对应的密码技术有单向散列函数、消息认证码、数字签名。认证:为了防止攻击者伪装成真正的发送者,因此需要对信息进行鉴权,校验此消息是否来自合法的发送者,对应的密码技术有消息认证码、数字签名。不可否认性:为了防止发送者发布信息后否认自己发布过,因此需要证据来证明信息是否由发送者发布,对应的密码技术为数字签名。上面已经提到了几种密码技术,包括对称加密、非对称加密、单向散列函数、消息认证码、数字签名,这些就是我们必须了解的几种密码技术。当然,这些可以说只是不同密码技术的类别,再看具体的算法,那就包括 AES、RSA、MD5、SHA1、SHA256、HMAC 等。有些对密码技术不了解的人,还会将 BASE64 也理解为一种加解密的密码技术。但实际上,BASE64 只是一种编码方式,本质上其实和 ASCII 和 UTF-8 编码类似,主要用途就是将不可打印的二进制数据编码为可打印的字符串,它并不具备以上密码技术的四个特性中的任何一个。