最近知道了一个加密算法,在校验文件、验证签名安全等很有用。整理一下关于MD5的相关知识。
(我不是知识的创造者,我只是知识的搬运工╭(●`∀´●)╯)
MD5消息摘要算法
(MD5 Message-Digest Algorithm)
是一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。MD5由美国密码学家罗纳德·李维斯特(Ronald Linn Rivest)设计,于1992年公开,用以取代MD4算法。
MD5算法的实现原理
1. 附加填充位
首先,我们计算出原文长度(bit)对 512 求余的结果,如果不等于 448,就需要填充原文使得原文对 512 求余的结果等于 448。填充的方法是第一位填充 1,其余位填充 0。填充完后,信息的长度就是 512*N+448。
2. 补足长度
之后,用剩余的位置(512-448=64 位)记录原文的真正长度,把长度的二进制值补在最后。这样处理后的信息长度就是 512*(N+1)。
3.