- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
MD5对文件进行摘要加密
[摘要][关键词]?MD5加密 设计 实现 应用?1. 引言????MD (Message Digest)意为报文摘要。由Ron Riverst 于1990年作为RFC提出,1992年[RFC 1320,1321]公布了MD5算法的细节。其功能是对不定长的报文作出定长的“报文摘要”。1.1 编写目的????本文描述了怎样实现MD5报文摘要算法的方法。????MD5有这样一个性质,杂凑码中的每一个比特都是所有输入比特的函数,因此获得了很好的混淆效果,从而不可能随机选择两个具有相同杂凑码的报文。????此算法将对输入的任意长度的信息进行计算,产生一个128位长度的“指纹”或“报文摘要”。?1.2 安全性分析????找出两个具有相同杂凑码的报文需要执行O(264)次运算;而寻找具有给定杂凑码的一个报文,要执行O(2128)次运算。????从密码分析的角度来看,要破解MD5运算结果,若用穷尽搜索方法,需进行O(264) 次运算,但用第类生日攻击,分析所需时间要短得多。因此认为MD5易受第类生日攻击的威胁。1. 3 术语与符号????实现中,一个“字”是32位,一个“字节”是8位。一系列位串可看成是一系列字节的普通形式,其中的连续的8位看成一个字节,高位在前,同理一系列字节串可看成是一系列32位的字,其中每个连续的4个字节当作一个字,低位在前。“当前文件”或“当前文档”指在当前MD5加密程序窗口打开的文件????程序假定一个int型变量占一个“字”的内存空间,一个char型变量占一个“字节”的内存空间。2. 程序说明2.1 程序描述????本程序实现了MD5加密技术,对打开的文件或当前编辑的文件进行加密。程序主要通过菜单选项进行操作。
2.2 功能说明(功能模块结构)
2.3 算法说明
????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)*64 Bytes。第三步,初始化MD5参数:????有四个32位整数变量 (A,B,C,D) 用来计算信息摘要,每一个变量被初始化成以下以十六进制数表示的数值,低位的字节在前面。????word A: 01 23 45 67????word B: 89 ab cd ef????word C: fe dc ba 98????word D: 76 54 32 10????低位的字节在前面指的是Little Endian平台上内存中字节的排列方式,而在程序中书写时,要写成:???? A=0???? B=0xefcdab89???? C=0x98badcfe???? D=0第四步,定义四个MD5基本的按位操作函数:????X,Y,Z为32位整数。????F(X,Y,Z) = (X and Y) or (not(X) and Z)????G(X,Y,Z) = (X and Z) or (Y and not(Z))????H(X,Y,Z) = X xor Y xor Z????I(X,Y,Z) = Y xor (X or not(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)????I I(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]表示一组
您可能关注的文档
最近下载
- 体例格式8:工学一体化课程《windows服务器基础配置与局域网组建》任务3学习任务考核方案.docx VIP
- 石方破碎开挖施工组织设计.pdf VIP
- TCCPA-陆上风力发电机组钢混塔架施工与质量验收规范.pdf VIP
- 2025年浙江省江山市中考数学试题及参考答案详解【新】.docx VIP
- 支持性护理对结直肠癌术后结肠造口患者生活质量改善情况分析.pdf VIP
- Goodrive300-01A系列空压机专用变频器说明书.pdf
- 跨境电商平台创业计划书.docx VIP
- 智能制造系统建模与仿真 课件 第1章 智能制造技术的产生及发展.pptx
- 2025年辅警招聘公安基础知识100题及答案.pdf VIP
- 砂浆及砌块原始记录.docx VIP
文档评论(0)