摘要算法又称哈希算法,它表示输入任意长度的数据,输出固定长度的数据,它的主要特征是加密过程不需要密钥,并且经过加密的数据无法被解密,目前可以被解密逆向的只有CRC32算法,只有输入相同的明文数据经过相同的消息摘要算法才能得到相同的密文。消息摘要算法不存在密钥的管理与分发问题,适合于分布式网络上使用。由于其加密计算的工作量相当巨大,所以以前的这种算法通常只用于数据量有限的情况下的加密,消息摘要算法分为三类:
MD(Message Digest):消息摘要
SHA(Secure Hash Algorithm):安全散列
MAC(Message Authentication Code):消息认证码
这三类算法的主要作用:验证数据的完整性
消息摘要算法是有关于数字签名的核心算法,下面讲解MD5的一个应用:HTTP中的摘要认证机制。
1、HTTP摘要认证主要通过4个方法保证用户的认证安全和隐私:
(1)通过传递用户名,密码等计算出来的摘要来解决明文方式在网络上发送密码的问题。
(2)通过服务产生随机数nonce的方式可以防止恶意用户捕获并重放认证的握手过程。
(3)通过客户端产生随机数cnonce的方式,支持客户端对服务器的认证。
(4)通过对内容也加入摘要计算的方式,可以有选择的防止对报文内容的篡改
2、摘要认证的握手过程
(1)客户端请求
GET /dir/index.html HTTP/1.0
Host: localhost
(2)服务器响应
服务器产生一个随机数nonce,服务器将