MD5算法解析
MD5即Message-Digest Algorithm 5, 信息学中使用广泛的哈希算法
MD5简介MD5即Message-Digest Algorithm 5, 信息学中使用广泛的哈希算法
这个算法具有很多性质:
压缩性: 对于任意长度的输入, 输出长度总是相同的
容易计算: 线性时间复杂度
抗修改性: 对原数据的一点点修改都会导致最终结果的巨大变化
抗碰撞性: 已知原数据和MD5值很难生成与原数据不同但MD5值相同的数据
MD5可以生成任意一个文件的“数字指纹”,对文件的微小改动都会直接导致数字指纹的巨大变化。
注:MD5加密中文需要使用UTF-8编码,但Windows下默认是GBK编码,两种编码得到的结果是不一样的
加密步骤填充MD5中,首先要对信息进行填充,先填充一个1,后面都填充0,使得信息的长度 $len \equiv 448 \pmod{512}$ ,即 $len\bmod 512 = 448$。为什么要求模出来是448呢?因为448=512-64,而填充完后后面还要再填上64位的原数据长度,如果超出64位则填充原数据长度的后64位,这样可以使得最终的数据长度 ...