M5实验报告.docVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
M5实验报告.doc

MD5算法实验报告 姓名:胡伟俊班级:网工1401学号:201426810607 一、 实验0的 验证MD5加密算法,了解加密过程。 二、 实验环境 软件工具:Visual C++ 6.0 揀作系统:windows xp 三、 实验思想 对MD5算法简要的叙述可以为:MD5以512位分组来处理输入的 信息,且每一分组又被划分为16个32位子分组,经过了一系列的处 理后,算法的输出由四个32位分组组成,将这四个32位分组级联后 将生成一个128位散列值。在MD5算法中,首先需要对信息进行填 充,使其位长对512求余的结果等于448。因此,信息的位长(Bits Length)将被扩展至N*512+448, N为一个非负整数,N可以是零。 填充的方法如下,在信息的后面填充一个1和无数个0,直到满足上 面的条件时才停止用0对信息的填充。然后,在这个结果后面附加一 个以64位二进制表示的填充前信息长度。经过这两步的处理,现在 的信息的位长=淋512+448+64=(糾1) *512,即长度恰好是512的整数 倍。这样做的原因是为满足后面处理中对信息长度的要求。MD5中 有四个32位被称作链接变量(Chaining Variable)的整数参数,他 们分别为:A=0 B=0xefcdab89,OOx98badcfe, D=0xl0325476。当设置好这四个链接变量后,就开始进入算法的四 轮循环运算。循环的次数是信息中512位信息分组的数目。将上面 四个链接变量复制到另外四个变量中.? A到a,B到b, C到c,D到d。 主循环有四轮(MD4只有三轮),每轮循环都很相似。第一轮进行16 次操作。每次操作对a、b、c和d中的其中三个作一次非线性函数运 算,然后将所得结果加上第四个变量,文本的一个子分组和一个常数。 再将所得结果向左环移一个不定的数,并加上a、b、c或d中之一。 最后用该绍果取代a、b、c或d中之一。 四、源代码 #includciostrcam #includestring. h ttdefine MAXNUM 65536 using namespace std; char info[MAXNUM]=\0; __int64 num-0: unsigned long A=0 unsigned long B=0xefcdab89; unsigned long C=0x98badcfc; unsigned long D=0xl0325476; int F(int X, int Y, int Z) return (XY)|((?X)Z); int G(int X,int Y, int Z) return (XZ)|(Y(?Z)); int H(int X,int Y, int Z) return X Y Z; int I (int X, int Y,int Z) return (X| (?Z)); void FF(unsigned long a,unsigned long b,unsigned long c,unsigned long d,unsigned long M,unsigned long s,unsigned long ti) { unsigned long tmp=(a+F(b, c, d)+M+ti); a=(tmp〈〈s)|(tmp(32-s)); a=a+b; void GG(unsigned long a,unsigned long b,unsigned long c,unsigned long d,unsigned long M, unsigned long s,unsigned long ti) { unsigned long tmp= (a+G(b, c, d)+M+ti); a=(tmps)|(tmp〉(32-s)); a=a+b: } void HH(unsigned long a, unsigned long b,unsigned long c,unsigned long d,unsigned long M, unsigned long s,unsigned long ti) { unsigned long tmp=(a+H(b, c, d)+M+ti): a=(tmp〈〈s)|(tmp〉(32-s)); a=a+b; } void II (unsigned long a,unsigned long b,unsigned long c,unsigned long d,unsigned long M,unsigned long s,unsigned long ti) unsigned long tmp=(a+I(b, c, d)+M+ti); a=(tmps)|(

文档评论(0)

ggkkppp + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档