下载此文档

md5加密原理.doc


文档分类:通信/电子 | 页数:约11页 举报非法文档有奖
1/11
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/11 下载此文档
文档列表 文档介绍
http://blog./Ewangsoft/archive/2006/07/22/-digestalgorithm5(信息-摘要算法,,经md2、md3和md4发展而来。/,是一份最权威的文档,。(message)生成信息摘要(message-digest),该摘要对该信息具有唯一性,可以作为数字签名。用于验证文件的有效性(是否有丢失或损坏的数据),对用户密码的加密,在哈希函数中计算散列值。,生成一个128位的整数。由于算法的某些不可逆特征,在加密应用上有较好的安全性。并且,MD5算法的使用不需要支付任何版权费用。,从理论上分析是一种多对一的关系,但两个不同的信息产生相同摘要的概率很小。不可逆是指从输出反推输入所需的运算量和计算时间太大,使用穷搜字典的方法又需要太多的存储空间。,:第一步,补位:MD5算法先对输入的数据进行补位,使得数据的长度(以byte为单位)对64求余的结果是56。即数据扩展至LEN=K*64+56个字节,K为整数。补位方法:补一个1,然后补0至满足上述要求。相当于补一个0x80的字节,再补值为0的字节。这一步里总共补充的字节数为0~63个。第二步,附加数据长度:用一个64位的整数表示数据的原始长度(以bit为单位),将这个数字的8个字节按低位的在前,高位在后的顺序附加在补位后的数据后面。这时,数据被填补后的总长度为:LEN=K*64+56+8=(K+1)*64Bytes。※注意那个64位整数是输入数据的原始长度而不是填充字节后的长度,,初始化MD5参数:有四个32位整数变量(A,B,C,D)用来计算信息摘要,每一个变量被初始化成以下以十六进制数表示的数值,低位的字节在前面。wordA:01234567wordB:89abcdefwordC:fedcba98wordD:76543210※注意低位的字节在前面指的是LittleEndian平台上内存中字节的排列方式,而在程序中书写时,要写成:A=0x67452301B=0xefcdab89C=0x98badcfeD=0x10325476第四步,定义四个MD5基本的按位操作函数:X,Y,Z为32位整数。F(X,Y,Z)=(XandY)or(not(X)andZ)G(X,Y,Z)=(XandZ)or(Yandnot(Z))H(X,Y,Z)=XxorYxorZI(X,Y,Z)=Yxor(Xornot(Z))再定义四个分别用于四轮变换的函数。设Mj表示消息的第j个子分组(从0到15),<<<s表示循环左移s位,则四种操作为:FF(a,b,c,d,Mj,s,ti)表示a=b+((a+(F(b,c,d)+Mj+ti)<<<s)GG(a,b,c,d,Mj,s,ti)表示a=b+((a+(G(b,c,d)+Mj+ti)<<<s)HH(a,b,c,d,Mj,s,ti)表示a=b+((a+(H(b,c,d)+Mj+ti)<<<s)II(a,b,c,d,Mj,s,ti)表示a=b+((a+(I(b,c,d)+Mj+ti)<<<s)第五步,对输入数据作变换。处理数据,N是总的字节数,以64个字节为一组,每组作一次循环,每次循环进行四轮操作。要变换的64个字节用16个32位的整数数组M[0...15]表示。而数组T[1...64]表示一组常数,T[i]为4294967296*abs(sin(i))的32位整数部分,i的单位是弧度,i的取值从1到64。具体过程如下:/*设置主循环变量*/Fori=0toN/16-1do/*每循环一次,把数据原文存放在16个元素的数组X中.*/Forj=0to15doSetX[j]toM[i*16+j].end/结束对J的循环/*SaveAasAA,BasBB,,andDasDD.*/AA=ABB=BCC=CDD=D/*第1轮*//*以[abcdksi]表示如下操作a=b+((a+F(b,c,d)+X[k]+T[i])<<<s).*//*Dothefollowing16operations.*/[ABCD071][DABC1122][CDAB2173][BCDA3224][ABCD475][DABC5126][CDAB6177][BCDA7228][ABCD879][DABC91210][CDAB101711][BC

md5加密原理 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数11
  • 收藏数0 收藏
  • 顶次数0
  • 上传人xzh051230
  • 文件大小51 KB
  • 时间2019-05-29
最近更新