md5是什么意思?md5算法原理及其实现

QQBA18A2F81D 其它 568

视频来源于网络,如有侵权请告知

md5是什么意思?

MD5算法最初是由美国密码学家罗纳德·李维斯特设计的,MD5算法可自动生成一个128位(16字节)的数值,在1992年取代MD4算法,由于MD5算法稳定、快速等优点,被广泛应用在普通数据加密方面,例如密码、电子签名、垃圾邮件等方面。

MD5算法的整体流程图
MD5算法的整体流程图

MD5算法实现:

输入:长度不一定的加密信息;
输出:Md5加密算法固定长度128bits,由32位分组组成,然后将这32位分组级联后生成一个128位散列数值;
Md5加密算基本方式为:求余、取余、调整长度、与链接变量进行循环运算,最后得出结果。

Md5加密算法原理:

MD5加密算法是通过512位分组来处理输入信息,每一组又被分为16个32位子分组,然后经过一系列处理后,输出四个32位分组,最后将这四个32位分组级联后生成一个128位散列数值。

md5加密算法
在MD5加密算法中,首先是对数据信息进行填充,使字节长度对512求余数结果等于448,所以数据信息字节长度被扩展到N*512+448,即N*64+56个字节,N为一个正整数。

MD5加密算法填充方法如下:

先在数据信息后填充一个1和无数0,直至满足条件才停止填充0,接着再在这个结果后面附加一个以64位二进制表示的填充前的信息长度。
经过以个两个步骤的处理,现在的数据信息长度为N*512+448+64=(N+1)*512,数据长度恰好是512的整倍整数,这样做的目的是为了满足后面的运算要求。
MD5加密算法中有4个32位,称之为链接变量(Chaining Variable)的整数参数,分别为:
A=0x01234567
B=0x89abcdef
C=0xfedcba98
D=0x76543210
当这4个链接变量设置好以后,我们就将进入算法的四轮循环运算,循环运算次数是信息中512位信息分组数目。
将以上4个链接变量复制到另4个变量中,例如A到a、B到b、C到c、D到d等,主循环有四轮(MD4算法只有三轮),每轮循环都是差不多的,第一轮循环进行16次操作,每次操作对a、b、c和d其中的三个进行一次非线性函数运算,最后将所得到的结果加上第四个变量(文本中的一个子分组和一个常数)。
再将最后得出的结果向右环移一个不定的数值,并加上a、b、c或d其中的一个,最后用这个结果取代a、b、c或d数值中的一具,以上每次操作中用到的4个非线性函数(每轮一个)。
F(X,Y,Z)=(X∧Y)∨(( X)∧Z)
G(X,Y,Z)=(X∧Z)∨(Y∧( Z))
H(X,Y,Z)=X?Y?Z
I(X,Y,Z)=Y?(X∨( Z))
其中,?是异或,∧是与,∨是或, 是反符号。
如果X、Y、Z的数值都是独立均匀的,那么得出的结果也应是独立均匀的,F是一个逐位运算的函数,即如果不是X,那么就是Y,否则就是Z,函数H是逐位奇偶操作符。
当以上所以这些都完成以后,将A、B、C、D分别加上a、b、c、d,然后再用下一级数据继续运算,最后得出的结果是A、B、C、D的级联,最后得到的A,B,C,D就是输出结果,A是低位,D为高位,DCBA组成128位输出结果。

Md5加密算法的应用

MD5加密算法由于有着稳定、快速、较好的安全性等优点,而且还是免费使用,所以该算法被广泛应用于各个方面,例如密码加密、数字签名、垃圾邮件、口令加密、文件完整性验证等方面。

回复

我来回复
  • 暂无回复内容

联系我

平时工作忙:合作还是咨询SEO服务,请简明扼表明来意!谢谢!

在线咨询:点击这里给我发消息

邮件:dabingseo@qq.com
工作时间:周一至周六,10:30-24:30,节假日休息

个人微信
个人微信
分享本页
返回顶部