MD5算法研究,网站设计论文_第1页
MD5算法研究,网站设计论文_第2页
MD5算法研究,网站设计论文_第3页
MD5算法研究,网站设计论文_第4页
MD5算法研究,网站设计论文_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

MD5算法研究,网站设计论文本篇论文目录导航:【题目】【第一章】【2.12.2】MD5算法研究【2.32.4】【第三章】【第四章】【第五章】【第六章】【总结/以下为参考文献】第二章相关技术研究2.1ASP.NET动态网页及数据库连接技术ASP.NET的前身是ASP技术,指ActiveServerPages〔动态服务器页面〕。ASP.NET是微软公司2002年推出的Web开发技术,是在Windows平台下的新型Web程序开发语言。经过几年的改良和优化,ASP.NET已逐步成为一种稳定而强大的Web开发语言。〔1〕面向对象性ASP.NET将C#作为一种面向对象语言,在很多方面来看,C#将成为微软的与Java类似的语言。C#另一个有趣的地方是所有对象都自动变成为COM对象。C#是ASP.NET开发中一个最重要的功能,微软将C#发展成为Java的强劲对手,它能够和Windows环境严密集成,C#产生的结果将进一步加固微软和Sun产品的战线。这对用户是有利的,他们能够选择两者之一来开发新的应用。〔2〕数据库连接ASP.NET另一个亮点是它使用ADO对象、ODBC、OLE-DB和事务处理管理器。有了ADO.NET带来了更强大更快速的功能,Web数据库应用开发就十分简单,而且ASP.NET还发展了更多的功能。当前在易用性和性能上与JSP和JDBC相比具有一定的优势。〔3〕大型站点应用ASP.NET将对大型站点有更好的支持。事实上微软在这方面付出了宏大的努力。在考虑多服务器〔MultipleServers〕的场合,当需要更强大的功能时,仅仅只需要增加一台服务器,整个。NET框架已经充分地提供了这个方式方法。于是ASP.NET如今能够在大型项目方面与JSP一样具有等同的能力。而ASP.NET还有价格方面的优势,由于所有的组件将是服务器操作系统的一部分。对于JSP则需要购买昂贵的应用服务器群来到达同样的目的。2.1.1ADO.NET访问数据库ADO.NET的名称起源于ADO〔ActiveXDataObjects〕,这是一个广泛的类组,用于在以往的Microsoft技术中访问数据。ADO.NET是在ADO的基础上发展的新一代数据存取技术,是在。NET开发环境中优先使用的数据访问接口。ADO.NET提供了与对应数据交互的属性和方式方法,编程者能够通过这些属性和方式方法很方便地对各种数据源进行存取操作,例如SQL数据库、Access数据库、Oracle数据库和XML文件等。在ADO.NET中,能够使用多种。NETFramework数据提供程序来访问数据源。ADO.NET有5个主要的对象[4]:〔1〕Connection:用于连接到数据库或其他数据源。〔2〕Command:成功与数据建立连接后,就能够用Command对象来执行查询、修改、插入和删除等命令。〔3〕DataReader:DataReader对象允许开发人员获得从Command对象的SELECT语句得到的结果。从DataReader返回的数据都是快速的且只是向前的数据流,开发人员只能根据一定的顺序从数据流中取出数据。〔4〕DataAdapter:用于将数据源中的数据填充到DataSet中,并将在DataSet中的数据更新后保存到数据库中。〔5〕DataSet:数据集,是驻留在内存中的数据库,华而不实包含表、视图、表之间的关系等。通常在无连接方式下使用DataSet.2.1.2存储经过存储经过〔StoredProcedure〕是在大型数据库系统中,一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储经过的名字并给出参数〔假如该存储经过带有参数〕来执行它。存储经过是数据库中的一个重要对象,任何一个设计良好的数据库应用程序都应该用到存储经过[5].存储经过具有下面优点:〔1〕重复使用:存储经过能够重复使用,进而能够减少数据库开发人员的工作量。〔2〕提高性能:存储经过在开创建立的时候在进行了编译,将来使用的时候不再重新翻译。一般的SQL语句每执行一次就需要编译一次,所以使用存储经过提高了效率。〔3〕减少网络流量:存储经过位于服务器上,调用的时候只需要传递存储经过的名称以及参数就能够了,因而降低了网络传输的数据量。〔4〕安全性:假设将SQL语句混合在ASP代码中,一旦代码失密,同时也就意味着数据库构造失密。参数化的存储经过能够防止SQL注入式攻击,而且能够将Grant、Deny以及Revoke权限应用于存储经过。可用CREATEPROCEDURE语句开创建立存储经过,语法格式如下[5]:CREATEPROC[EDURE]存储经过名[;number][{@参数数据类型}[VARYING][=默认值][OUTPUT]][,n][WITH{RECOMPILE|ENCRYPTION|RECOMPILE,ENCRYPTION}][FORREPLICATION]ASsql语句[n]参数讲明:〔1〕存储经过名:新建存储经过名称必须符合标识符规则,且对于数据库及其所有者必须唯一。要开创建立局部临时经过,能够在存储经过名前面加一个编号符〔#存储经过名〕,要开创建立全局临时经过,能够在存储经过名前面加两个编号符〔##存储经过名〕。〔2〕number:是可选的整数,用来对同名的经过分组,以便用一条DROPPROECDURE语句即可将同组的经过一起除去。〔3〕@参数:经过中的参数。在CREATEPROCEDURE语句中能够声明一个或多个参数。数据类型用于限定参数的数据类型。〔4〕OUTPUT:表名参数能否返回参数。该选项的值能够返回给EXECUTE语句。使用OUTPUT参数可将信息返回给调用经过。〔5〕RECOMPILE:表示清楚SQLServer不会缓存该经过的计划,该经过将在运行时重新编译。〔6〕ENCRYPTION:表示SQLServer加密syscomments表中包含CREATEPROCEDURE语句文本的条目。〔7〕FORREPLICATION:不能在订阅服务器上执行为复制开创建立的存储经过。2.2MD5算法研究MD5即Message-DigestAlgorithm5〔信息-内容摘要算法5〕,用于确保信息传输完好一致。是计算机广泛使用的杂凑算法之一〔又译内容摘要算法、哈希算法〕,主流编程语言普遍已有MD5的实现。对各种系统中的身份认证来讲,用户名+密码的形式非常简单,很多编程人员为了将密码不明示,就对密码串进行MD5散列,在数据库或文件中保存MD5编码。2.2.1MD5加密算法解析在一些初始化处理后,MD5以512位分组来处理输入文本,每一分组又划分为16个32位子分组。算法的输出由四个32位分组组成,将它们级联构成一个128位散列值。首先填充消息使其长度恰好为一个比512位的倍数仅小64位的数。填充方式方法是附一个1在消息后面,接多个0,然后在其后附上64位的消息长度〔填充前〕。这两步的作用是使消息长度恰好是512位的整数倍〔算法的其余部分要求如此〕,同时确保不同的消息在填充后不一样。四个32位变量初始化为:A=0x01234567B=0x89abcdefC=0xfedcba98D=0x76543210它们称为链接变量〔chainingvariable〕,接着进行算法的主循环,循环的次数是消息中512位消息分组的数目。将上面四个变量复制到别外的变量中:A到a,B到b,C到c,D到d.主循环有四轮〔MD4只要三轮〕,每轮很相拟。第一轮进行16次操作。每次操作对a,b,c和d中的华而不实三个作一次非线性函数运算,然后将所得结果加上第四个变量,文本的一个子分组和一个常数。再将所得结果向右循环移一个不定的数,并加上a,b,c或d中之一。最后用该结果取代a,b,c或d中之一。以下为每次操作中用到的四个非线性函数〔每轮一个〕。F〔X,Y,Z〕=〔XY〕|〔〔~X〕Z〕G〔X,Y,Z〕=〔XZ〕|〔Y〔~Z〕〕H〔X,Y,Z〕=X^Y^ZI〔X,Y,Z〕=Y^〔X|〔~Z〕〕这些函数是这样设计的:假如X、Y和Z的对应位是独立和均匀的,那么结果的每一位也应是独立和均匀的。函数F是按逐位方式操作:假如X,那么Y,否则Z.函数H是逐位奇偶操作符。设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〕这四轮〔64步〕是:〔1〕第一轮FF〔a,b,c,d,M0,7,0xd76aa478〕FF〔d,a,b,c,M1,12,0xe8c7b756〕FF〔c,d,a,b,M2,17,0x242070db〕FF〔b,c,d,a,M3,22,0xc1bdceee〕FF〔a,b,c,d,M4,7,0xf57c0faf〕FF〔d,a,b,c,M5,12,0x4787c62a〕FF〔c,d,a,b,M6,17,0xa8304613〕FF〔b,c,d,a,M7,22,0xfd469501〕FF〔a,b,c,d,M8,7,0x698098d8〕FF〔d,a,b,c,M9,12,0x8b44f7af〕FF〔c,d,a,b,M10,17,0xffff5bb1〕FF〔b,c,d,a,M11,22,0x895cd7be〕FF〔a,b,c,d,M12,7,0x6b901122〕FF〔d,a,b,c,M13,12,0xfd987193〕FF〔c,d,a,b,M14,17,0xa679438e〕FF〔b,c,d,a,M15,22,0x49b40821〕〔2〕第二轮GG〔a,b,c,d,M1,5,0xf61e2562〕GG〔d,a,b,c,M6,9,0xc040b340〕GG〔c,d,a,b,M11,14,0x265e5a51〕GG〔b,c,d,a,M0,20,0xe9b6c7aa〕GG〔a,b,c,d,M5,5,0xd62f105d〕GG〔d,a,b,c,M10,9,002441453〕GG〔c,d,a,b,M15,14,0xd8a1e681〕GG〔b,c,d,a,M4,20,0xe7d3fbc8〕GG〔a,b,c,d,M9,5,0x21e1cde6〕GG〔d,a,b,c,M14,9,0xc33707d6〕GG〔c,d,a,b,M3,14,0xf4d50d87〕GG〔b,c,d,a,M8,20,0x455a14ed〕GG〔a,b,c,d,M13,5,0xa9e3e905〕GG〔d,a,b,c,M2,9,0xfcefa3f8〕GG〔c,d,a,b,M7,14,0x676f02d9〕GG〔b,c,d,a,M12,20,0x8d2a4c8a〕〔3〕第三轮HH〔a,b,c,d,M5,4,0xfffa3942〕HH〔d,a,b,c,M8,11,0x8771f681〕HH〔c,d,a,b,M11,16,0x6d9d6122〕HH〔b,c,d,a,M14,23,0xfde5380c〕HH〔a,b,c,d,M1,4,0xa4beea44〕HH〔d,a,b,c,M4,11,0x4bdecfa9〕HH〔c,d,a,b,M7,16,0xf6bb4b60〕HH〔b,c,d,a,M10,23,0xbebfbc70〕HH〔a,b,c,d,M13,4,0x289b7ec6〕HH〔d,a,b,c,M0,11,0xeaa127fa〕HH〔c,d,a,b,M3,16,0xd4ef3085〕HH〔b,c,d,a,M6,23,0x04881d05〕HH〔a,b,c,d,M9,4,0xd9d4d039〕HH〔d,a,b,c,M12,11,0xe6db99e5〕HH〔c,d,a,b,M15,16,0x1fa27cf8〕HH〔b,c,d,a,M2,23,0xc4ac5665〕〔4〕第四轮II〔a,b,c,d,M0,6,0xf4292244〕II〔d,a,b,c,M7,10,0x432aff97〕II〔c,d,a,b,M14,15,0xab9423a7〕II〔b,c,d,a,M5,21,0xfc93a039〕II〔a,b,c,d,M12,6,0x655b59c3〕II〔d,a,b,c,M3,10,0x8f0ccc92〕II〔c,d,a,b,M10,15,0xffeff47d〕II〔b,c,d,a,M1,21,0x85845dd1〕II〔a,b,c,d,M8,6,0x6fa87e4f〕II〔d,a,b,c,M15,10,0xfe2ce6e0〕II〔c,d,a,b,M6,15,0xa3014314〕II〔b,c,d,a,M13,21,0x4e0811a1〕II〔a,b,c,d,M4,6,0xf7537e82〕II〔d,a,b,c,M11,10,0xbd3af235〕II〔c,d,a,b,M2,15,0x2ad7d2bb〕II〔b,c,d,a,M9,21,0xeb86d391〕常数ti能够如下选择:在第i步中,ti是4294967296*abs〔sin〔i〕〕的整数部分,i的单位是弧度。〔2的32次方〕所有这些完成之后,将A,B,C,D分别加上a,b,c,d.然后用下一分组数据继续运行算法,最后的输出是A,B,C和D的级联。[6]在。NET环境下对密码进行32位MD5编码,最简单的实现方式方法:System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile〔要编码的字符串,MD5〕[7].2.2.2使用MD5变换算法来防止穷举破译密码回首使用MD5加密文本密码的初衷,就是为了防止数据库中保存的密码不幸泄露后被直接获得。但攻击者不但拥有数据量宏大的密码字典,而且建立了很多MD5原文和密文对照数据库,能快速地找到常用密码的MD5密文,是破译MD5密文的高效途径。然而,MD5密文数据库所使用的是最常规的MD5加密算法。因而,我们能够使用变换的MD5算法,使现成的MD5密文数据库无所作为。〔1〕变换一:循环MD5最容易理解的变换就是对一个密码进行屡次的MD5运算。自定义一个函数,它接受两个形

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论