MD5-加密算法以及原理-delphi版.docx

MD5-加密算法以及原理-delphi版.docx

ID:57587694

大小:23.63 KB

页数:13页

时间:2020-08-27

MD5-加密算法以及原理-delphi版.docx_第1页
MD5-加密算法以及原理-delphi版.docx_第2页
MD5-加密算法以及原理-delphi版.docx_第3页
MD5-加密算法以及原理-delphi版.docx_第4页
MD5-加密算法以及原理-delphi版.docx_第5页
资源描述:

《MD5-加密算法以及原理-delphi版.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、1.MD5算法说明一、补位二、补数据长度三、初始化MD5参数四、处理位操作函数五、主要变换过程六、输出结果补位:MD5算法先对输入的数据进行补位,使得数据位长度LEN对512求余的结果是448。即数据扩展至K*512+448位。即K*64+56个字节,K为整数。具体补位操作:补一个1,然后补0至满足上述要求。补数据长度:用一个64位的数字表示数据的原始长度B,把B用两个32位数表示。这时,数据就被填补成长度为512位的倍数。初始化MD5参数:四个32位整数(A,B,C,D)用来计算信息摘要,初始化使用的是十六进制表示的数字A=0X0123

2、4567B=0X89abcdefC=0Xfedcba98D=0X76543210处理位操作函数:X,Y,Z为32位整数。F(X,Y,Z)=X&Y

3、NOT(X)&ZG(X,Y,Z)=X&Z

4、Y?(Z)H(X,Y,Z)=XxorYxorZI(X,Y,Z)=Yxor(X

5、not(Z))主要变换过程:使用常数组T[1...64],T[i]为32位整数用16进制表示,数据用16个32位的整数数组M[]表示。具体过程如下:Fori=0toN/16-1doForj=0to15doSetX[j]toM[i*16+j].end/结束对J的循环AA=ABB=

6、BCC=CDD=D[ABCD071][DABC1122][CDAB2173][BCDA3224][ABCD475][DABC5126][CDAB6177][BCDA7228][ABCD879][DABC91210][CDAB101711][BCDA112212][ABCD12713][DABC131214][CDAB141715][BCDA152216][ABCD1517][DABC6918][CDAB111419][BCDA02020][ABCD5521][DABC10922][CDAB151423][BCDA42024][ABCD95

7、25][DABC14926][CDAB31427][BCDA82028][ABCD13529][DABC2930][CDAB71431][BCDA122032][ABCD5433][DABC81134][CDAB111635][BCDA142336][ABCD1437][DABC41138][CDAB71639][BCDA102340][ABCD13441][DABC01142][CDAB31643][BCDA62344][ABCD9445][DABC121146][CDAB151647][BCDA22348][ABCD0649][DAB

8、C71050][CDAB141551][BCDA52152][ABCD12653][DABC31054][CDAB101555][BCDA12156][ABCD8657][DABC151058][CDAB61559][BCDA132160][ABCD4661][DABC111062][CDAB21563][BCDA92164]A=A+AAB=B+BBC=C+CCD=D+DDend输出结果。  2.实现代码:  {unitUnit2;interfaceimplementationend. 具体使用方法如下,另外还附有源代码:MD5加密算法(

9、DELPHI)}unitUnit2;//-----------------------------------------------------------------------------------------------INTERFACE//-----------------------------------------------------------------------------------------------usesWindows;typeMD5Count=array[0..1]ofDWORD;MD5Stat

10、e=array[0..3]ofDWORD;MD5Block=array[0..15]ofDWORD;MD5CBits=array[0..7]ofbyte;MD5Digest=array[0..15]ofbyte;MD5Buffer=array[0..63]ofbyte;MD5Context=recordState:MD5State;Count:MD5Count;Buffer:MD5Buffer;end;procedureMD5Init(varContext:MD5Context);procedureMD5Update(varContext

11、:MD5Context;Input:pChar;Length:longword);procedureMD5Final(varContext:MD5Context;varDigest:MD5Di

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。