摘要认证
又称为哈希算法
输入任意长度的数据,输出固定长度的数据,主要特征是加密过程不需要密钥,并且加密的数据无法破解
目前能被逆向解密的只有CRC32算法,只有输入相同的明文数据经过相同的消息摘要算法才能得到相同的密文
不存在密钥的管理和分发的问题,适合于分布式网络上使用,加密计算的工作量巨大,所以以前的这种算法通常只用于数据量有限的情况下的加密
消息摘要算法分为三类
MD 消息摘要
SHA 安全散列
MAC 消息认证码
MD5简介
MD5是Message-Digest Algorithm 5 信息-摘要算法
属于摘要算法,是一个不可逆的过程,生成结果为128bit的字符串,通常表示32个十六进制数据连成的字符串
加密过程
填充长度
需要把数据填充到64个字节,512bit的倍数
最少填充9个字节,最多填充72个字节
十六字节的
计算
将填充后的数据按照64字节进行分组,假设有256个字节,可以分为4组
第一步
a=A b=B c=C d=D
第二步
计算数据
a=((a+F+K[i]+M[g])<<s[i])+b
交换数据
第二步循环64次
第三步
A=A+a B=B+b C=C+c D=D=d