欢迎来到天天文库
浏览记录
ID:57587694
大小:23.63 KB
页数:13页
时间:2020-08-27
《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
此文档下载收益归作者所有