本科毕业论文题目MD5加密技术在信息管理系统中的应用系别信科系专业班级计科1108姓名刘天鹏指导教师彭登峰2015年4月1日内容摘要信息的安全性已成为全社会关心问题,密码学研究也越来越被人所关注,而单向散列(Hash)函数是现代密码学的核心,最常见的散列算法有MD5、SHA、和Snefru,MD5是当今非常流行的优秀的典型Hash加密技术。针对当前网站建设和系统开发中用户信息等重要数据的安全问题,主要研究能够给用户密码进行加密的MD5算法。MD5是一个比较古老的算法,经常广泛地应用于安全领域。例如在UNIX系统中用户的密码就是通过MD5算法经过加密才存储在文件系统中。在用户登录输入密码的时候,系统就自动把用户输入的密码计算成为MD5值,然后再去与保存在系统文件中的MD5值进行比较,最后确定用户输入的密码是否正确。本文通过对MD5加密算法的深入研究,介绍了MD5算法的特性、算法原理及其算法流程,并给出MD5算法在一个具体信息管理系统中的实际应用,通过实际应用中测试出的结果得出MD5算法是一种非常安全和易用的加密算法。关键词:MD5;加密算法;信息系统AbstractInformationsecurityhasbecomeaproblemofthewholesocietytocarefor,cryptographyresearchwasincreasinglyconcerned,andone-wayhash(Hash)functionisthecoreofmoderncryptography,themostcommonhashingalgorithmsMD5,SHA,andSnefru,MD5isverypopularintoday'stypicalgoodHashencryptiontechnology.Websiteforthecurrentsecurityissuesanduserinformationsystemsdevelopmentandotherimportantdata,themainresearchcangiveuserstheMD5algorithmtoencryptpasswords.MD5algorithmisarelativelyold,oftenwidelyusedinthefieldofsecurity.Forexample,inaUNIXsystemuser'spasswordisencryptedthroughtheMD5algorithmwasstoredinthefilesystem.Userloginpassword,thesystemwillautomaticallycalculatetheusertoenterapasswordtobecomeMD5value,andthengowiththeMD5valueisstoredinasystemfilecompare,andfinallydeterminetheuserenteredpasswordiscorrect.Throughin-depthstudyoftheMD5encryptionalgorithm,anddescribesthecharacteristicsoftheMD5algorithm,thealgorithmprincipleandalgorithmflow,andthepracticalapplicationoftheMD5algorithmisgiveninaspecificinformationmanagementsystem,throughthepracticalapplicationoftheresultsobtainedinthetestMD5algorithmisaverysafeandeasytouseencryptionalgorithm.Keywords:MD5;encryptionalgorithm;informationsystems目录一、绪论.....................................................1(一)选题的背景及意义....................................1(二)国内外研究情况......................................1(三)MD5的发展历史......................................2二、MD5算法介绍.............................................3(一)MD5算法特点........................................3(二)MD5算法原理........................................3三、MD5加密算法与信息管理系统..............................10(一)信息管理系统.......................................10(二)MD5加密算法应用实例...............................11四、MD5加密算法在信息管理系统中的应用......................14(一)系统的需求分析.....................................14(二)系统的概念结构的设计...............................14(三)系统总体设计.......................................15(四)系统测试...........................................19(五)MD5加密技术的封装和运用...........................19五、MD5加密算法的安全性....................................23六、结论....................................................24七、致谢....................................................251MD5加密技术在信息管理系统中的应用一、绪论随着网络通信技术和Internet之间的联系日益增强,出现了许多与网络安全有关的问题,例如:对主机的攻击,网络上传输的信息被截取、篡改、重发等。由于它们对网络应用的发展和推进有着巨大的影响,所以密码体制就应运而生了。在一般情况下用户的资料信息是保存在数据库中,如果没有对数据库采取任何形式的保密措施,例如文件型数据库Access,如果有人得到这些文件,那么所有的资料将会泄露。所以为了加强数据库的安全性,是非常有必要对数据库中的资料和文件进行加密,这样即使有人得到了整个数据库,如果没有解密算法,同样不能查看数据库中的用户信息。对大量文件、资料、文档等储存加密,需要安全,高效的进行信息交换,同时此过程需要有效的组织和监控,对数据的存储和传输安全有着较高的要求。在竞争激烈的今天,只有建设和提高信息在网络中的安全地位,才能在竞争中生存、发展。(一)选题的背景及意义随着网络技术的广泛应用,网络信息的安全将会得到越来越多的重视,最初的计算机程序上很少甚至没有安全性。直到后来人们才开始真正意识到数据的重要,才开始重视信息的安全。MD5加密技术是一种非常优秀的中间技术,单从1991年到2001年这10年间,竟没有出现替代MD5算法的MD6或被叫做其它什么名字的新算法,所以MD5算法是一种非常安全的加密技术。通过该课题的学习和研究,使我们能够更好的掌握MD5加密技术,在信息管理系统中做出更大的贡献,使MD5加密技术得到更好的升华。(二)国内外研究情况MD5的全称是Message-DigestAlgorithm5(信息-摘要算法),早在90年代初由MITLaboratoryforComputerScience和RSADataSecurityInc的RonaldL.Rivest开发出来。MD5在MD4原有的基础上添加了安全-带子(safety-belts)的概念。虽然MD5要比MD4更加复杂,但是它更加安全。MD5算法有非常明显的四个步骤组成并且与2MD4的设计有一点不同。在MD5算法中,填充的必要条件与信息-摘要的大小是与MD4完全相同的。Denboer和Bosselaers曾发现MD5算法里的假冲突(pseudo-collisions),但是除了这个就没有发现其它的加密后的结果了。MD5加密算法是一种免费的加密算法,它不但能对信息管理系统加密还广泛的应用于计算机,数据安全传输,数字签名认证等安全领域。例如朱斌的论文中就以网络数据库为背景,分析和研究了MD5加密技术。何丰和田文艳的论文都是研究MD5加密技术的,一个是对用户登录系统加密,另一个则是对ASP网站用户账号的加密。由于MD5加密技术是单向加密,并且容易使用,性能好,密码不易破解和泄露,所以具有很高的安全性。(三)MD5的发展历史首先Rivest在1989年开发出MD2算法。在这个算法中,先对信息进行数据补位,让信息的字节长度成为16的倍数。然后,将通过一个16位的检验去追加到信息的末尾,并且计算出散列值通过这个新产生的信息。后来,Rogier和Chauvaud发现了如果忽略了检测将和MD2产生冲突。MD2加密算法加密后的结果是唯一的(即信息不同,加密结果不同)。为了提高算法的安全性,Rivest又开发出了MD4加密算法在1990年。MD4算法依旧需要填补信息来确保信息的比特位(即bit,计算机最小的计算单位)长度减去448后依旧被512整除。然后,二进制表示的64位最初长度的信息被添加进来。信息被处理成为512位迭代结构的区块,并且每一个区块都需要通过三个不同的步骤去处理。Denboer和Bosselaers还有另一些人也很快的发现了能攻击MD4算法中第一步与第三步的漏洞。其中Dobbertin还向大家演示如何去利用一台普通的私人电脑在几分钟之内找出MD4算法完整版本中的冲突(这个冲突就是种漏洞,它将导致加密不同内容但是却得出相同的加密结果)。毋庸置疑,MD4从此淘汰。尽管MD4算法在系统安全上存在很大的漏洞,但它对后来开发出来的许多信息安全加密算法中有着不可忽视的铺垫作用。1991年,Rivest开发出了技术上更为成熟的MD5算法。它在MD4的基础上增加了安全-带子(safety-belts)的概念。虽然MD5要比MD4更为复杂,但却更加安全。这个算法有四个很明显不同于MD4的组成步骤。但在MD5算法中与MD4完全相同的是信息-摘要的大小与填充的必要条件。Denboer和Bosselaers之前发现了MD5算法中的假冲突(pseudo-collisions),但除了这个就没有发现其它的加密后的结果了。3二、MD5算法介绍(一)MD5算法特点MD5算法具有以下特点:1.压缩性任意长度的数据,计算出的MD5值长度都是固定的。2.容易计算从原数据计算出MD5值非常容易。3.抗修改性对原数据进行任何改动,即使只修改1个字节,但所得到的MD5值都有非常大区别。4.弱抗碰撞已知原数据和其MD5值,想找到一个具有相同MD5值的数据是很困难的。5.强抗碰撞想找到两个不同的数据,使它们具有相同的MD5值,是很困难的。(二)MD5算法原理对MD5算法简要的叙述为:MD5以512位的分组来处理输入的信息,并且每一分组又被划分成为16个32位的子分组,经过了一系列的处理后,算法的输出由四个32位的分组组成,将这四个32位的分组结合后将生成一个128位散列值。1.填充在MD5算法中,首先需要将信息进行填充,使其位长对512求余后的结果等于448,即使其位长对512求余后的结果等于448,也必须要进行填充。因此,信息的位长将被扩展至N*512+448,N是一个非负整数,N也可以是零。填充过程入图1所示。4