已阅读5页,还剩25页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本科毕业论文 题 目 MD5加密技术在信息管理系统中的应用 系 别 信科系专业班级 计科1108姓 名 指导教师 2015年4月1日内容摘要信息的安全性已成为全社会关心问题,密码学研究也越来越被人所关注,而单向散列(Hash)函数是现代密码学的核心,最常见的散列算法有MD5、SHA、和Snefru,MD5是当今非常流行的优秀的典型Hash加密技术。针对当前网站建设和系统开发中用户信息等重要数据的安全问题,主要研究能够给用户密码进行加密的MD5算法。MD5是一个比较古老的算法,经常广泛地应用于安全领域。例如在UNIX系统中用户的密码就是通过MD5算法经过加密才存储在文件系统中。在用户登录输入密码的时候,系统就自动把用户输入的密码计算成为MD5值,然后再去与保存在系统文件中的MD5值进行比较,最后确定用户输入的密码是否正确。本文通过对MD5加密算法的深入研究,介绍了MD5算法的特性、算法原理及其算法流程,并给出MD5算法在一个具体信息管理系统中的实际应用,通过实际应用中测试出的结果得出MD5算法是一种非常安全和易用的加密算法。关键词:MD5;加密算法;信息系统AbstractInformation security has become a problem of the whole society to care for, cryptography research was increasingly concerned, and one-way hash (Hash) function is the core of modern cryptography, the most common hashing algorithms MD5, SHA, and Snefru, MD5 is very popular in todays typical good Hash encryption technology. Website for the current security issues and user information systems development and other important data, the main research can give users the MD5 algorithm to encrypt passwords. MD5 algorithm is a relatively old, often widely used in the field of security. For example, in a UNIX system users password is encrypted through the MD5 algorithm was stored in the file system. User login password, the system will automatically calculate the user to enter a password to become MD5 value, and then go with the MD5 value is stored in a system file compare, and finally determine the user entered password is correct. Through in-depth study of the MD5 encryption algorithm, and describes the characteristics of the MD5 algorithm, the algorithm principle and algorithm flow, and the practical application of the MD5 algorithm is given in a specific information management system, through the practical application of the results obtained in the test MD5 algorithm is a very safe and easy to use encryption algorithm.Keywords:MD5;encryption algorithm; information systems目 录一、绪论 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七、致谢 25MD5加密技术在信息管理系统中的应用一、绪论随着网络通信技术和Internet之间的联系日益增强,出现了许多与网络安全有关的问题,例如:对主机的攻击,网络上传输的信息被截取、篡改、重发等。由于它们对网络应用的发展和推进有着巨大的影响,所以密码体制就应运而生了。在一般情况下用户的资料信息是保存在数据库中,如果没有对数据库采取任何形式的保密措施,例如文件型数据库Access,如果有人得到这些文件,那么所有的资料将会泄露。所以为了加强数据库的安全性,是非常有必要对数据库中的资料和文件进行加密,这样即使有人得到了整个数据库,如果没有解密算法,同样不能查看数据库中的用户信息。对大量文件、资料、文档等储存加密,需要安全,高效的进行信息交换,同时此过程需要有效的组织和监控,对数据的存储和传输安全有着较高的要求。在竞争激烈的今天,只有建设和提高信息在网络中的安全地位,才能在竞争中生存、发展。(一)选题的背景及意义随着网络技术的广泛应用,网络信息的安全将会得到越来越多的重视,最初的计算机程序上很少甚至没有安全性。直到后来人们才开始真正意识到数据的重要,才开始重视信息的安全。MD5加密技术是一种非常优秀的中间技术,单从1991年到2001年这10年间,竟没有出现替代MD5算法的MD6或被叫做其它什么名字的新算法,所以MD5算法是一种非常安全的加密技术。通过该课题的学习和研究,使我们能够更好的掌握MD5加密技术,在信息管理系统中做出更大的贡献,使MD5加密技术得到更好的升华。(二)国内外研究情况MD5的全称是Message-Digest Algorithm 5(信息-摘要算法),早在90年代初由MIT Laboratory for Computer Science和RSA Data Security Inc的Ronald L. Rivest开发出来。MD5在MD4原有的基础上添加了安全-带子(safety-belts)的概念。虽然MD5要比MD4更加复杂,但是它更加安全。MD5算法有非常明显的四个步骤组成并且与MD4的设计有一点不同。在MD5算法中,填充的必要条件与信息-摘要的大小是与MD4完全相同的。 Den boer和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位迭代结构的区块,并且每一个区块都需要通过三个不同的步骤去处理。Den boer和Bosselaers还有另一些人也很快的发现了能攻击MD4算法中第一步与第三步的漏洞。其中Dobbertin还向大家演示如何去利用一台普通的私人电脑在几分钟之内找出MD4算法完整版本中的冲突(这个冲突就是种漏洞,它将导致加密不同内容但是却得出相同的加密结果)。毋庸置疑,MD4从此淘汰。尽管MD4算法在系统安全上存在很大的漏洞,但它对后来开发出来的许多信息安全加密算法中有着不可忽视的铺垫作用。1991年,Rivest开发出了技术上更为成熟的MD5算法。它在MD4的基础上增加了安全-带子(safety-belts)的概念。虽然MD5要比MD4更为复杂,但却更加安全。这个算法有四个很明显不同于MD4的组成步骤。但在MD5算法中与MD4完全相同的是信息-摘要的大小与填充的必要条件。Den boer和Bosselaers之前发现了MD5算法中的假冲突(pseudo-collisions),但除了这个就没有发现其它的加密后的结果了。二、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所示。原始消息填充(1512位)原始消息填充图1填充过程总长度应是512的倍数减去长64位,例如:可以是448位(448=512-64)或960位(960=2*512-64)或1472(1472=3*512-64)等。注意,填充总是相加的,即使原始消息已是512的倍数。2. 添加长度增加填充位之后,下一步就开始计算消息的原长,并将它加进填充后消息的末尾。首先去计算消息的长度,不包含填充位。例如,如果原消息是1000位,则去填充472位,就是把它变成比512的倍数(即1536)少64位,但长度是填充位之前的长度(即1000),不是1472。这个消息原长是一个64位的值,添加到填充之后的消息末尾,如图2所示。如果这个消息的长度超过了264位(由于消息过长,64位无法表示),只有用长度的低64位。这时的消息长度是512的倍数,变成要散列的消息。填充(可选)原始消息长度填充(可选)长度原始消息64位要散列的数据(摘要)图2添加长度计算原始消息的长度(不包含填充部分)。并且附加到填充位与消息之后。该长度用64位表示。假如该消息的长度超过64位(也就是说,大于264),那么就只使用后64位。添加完成后,它就是最终的消息了(即,该消息是要散列的消息)。3. 将输入分成512位的块图3是将输入分成512位的块要散列的数据(已摘要)块1块n块3块2512位 512位 512位 512位图3将输入分成512位的块4. 初始化链接变量初始化四个链接变量,分别称之为A,B,C,D,它们都是32位的数字,这些链接变量的初始十六进制数值如表1所示,低字节在前。表1连接变量A十六进制01234567B十六进制89ABCDEFC十六进制FEDCBA98D十六进制765432105. 处理块初始化之后,就开始实际算法了。这是个循环,对消息中多个512位块运行。(1) 将四个链接变量复制到四个变量a,b,c,d中,使a=A,b=B,c=C,d=D。如图4所示:DCBAadcb图4 将四个链接变量复制到四个变量中(2) 将当前512位块分解成16个子块,每个子块为32位,如图5所示。块1(512位)子块16子块2子块132位 32位 . 32位图5 将当前512块分解为16个子块(3) 主循环一共有四轮,每轮都很相似。每一轮的操作,都要去处理一个块中的16个子块。每一轮的输入如下:(a) 16个子块;(b)变量a,b,c,d;(c)常量t,如图6所示。16个子块其他常量t一轮abcd图6 每一轮处理这四轮中的第1步进行着不同处理,其他步骤是相同的。下面总结这四轮的迭代。每一轮输出的中间和最终结果都复制到寄存器abcd中,注:每一轮有16个寄存器。 先是对b, c, d进行一次非线性的函数运算,此运算在四轮中都不同。 把变量a加入第1步的输出中。 把消息子块Mi加入第2步的输出中。 把常量ti加入第3步输出中。 将第4步的输出循环向左移s位。 把变量b加入第5步输出中。 下一步的新abcd则是第6步的输出。消息分BA第4轮第3轮第1轮第2轮CD图7 MD5的主循环TiMiab非线性函数csd图8 MD5其中的一个执行过程有四个线性函数是在以下操作要用到的,简而言之,就是布尔运算。F(x,y,z) = (x&y)|(x)&z)G(x,y,z) = (x&z)|(y&(z)H(x,y,z) = xyzI(x,y,z) = y(x|(z)(&是与,|是或,是非,是异或)设计这些函数需要以下做法:如果x,y,z的对应位都是均匀和独立的,那么得出结果之后的每一位也都是均匀和独立的,函数F是通过逐位方式进行操作;如果X,那么Y,否则Z,函数H是按逐位奇偶进行操作。设消息的第i个子分组(从0到15)是由Mi来表示的。S则表示循环向左移S位,四种操作分别为:FF(a,b,c,d,Mi,s,ti)表示a=b+(a+(F(b,c,d)+Mi+ti)s)GG(a,b,c,d,Mi,s,ti)表示a=b+(a+(G(b,c,d)+Mi+ti)s)HH(a,b,c,d,Mi,s,ti)表示a=b+(a+(H(b,c,d)+Mi+ti)s)II(a,b,c,d,Mi,s,ti)表示a=b+(a+(I(b,c,d)+Mi+ti)s)这四轮(即64步)是:第一轮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,0xclbdceee)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)第二轮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,0x02441453)GG(c,d,a,b,M15,14,0xd8a1e681)GG(b,c,d,a,M4,20,0xe7d3dbc8)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)第三轮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,0x4dbecfa9)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)第四轮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,0xbd3ad235)II(c,d,a,b,M2,15,0x2ad7d2bb)II(b,c,d,a,M9,21,0xeb86d391)所有这些操作完成之后,将A,B,C,D分别加上a,b,c,d,然后用下一分组的数据继续运行算法,最后MD5算法产生128位的输出是A,B,C,D的级联,其中低字节始于A,高字节终于D。到此整个MD5算法处理结束。三、MD5加密算法与信息管理系统(一)信息管理系统以计算机为工具去收集、存储、分析和处理数据,得到管理人员需要的信息的系统。企业中的信息管理系统能很方便的帮助高级管理人员进行质量分析、市场预测、库存控制等工作。信息管理系统包含了很多方面,MD5也在很多不同领域的信息管理系统中应用。例如:电子商务、注册信息、数据库等等。1. MD5在电子商务领域中的应用在很多电子商务领域中,管理用户的信息账户是一种最常用的基本功能,尽管很多数据库服务器提供了这些基本组件,但是很多开发者为了管理起来更加方便依旧继续采用关系数据库进行管理。这种做法往往会将用户的密码过于简单的保存在数据库中,所以这些密码没有什么保密性。2. MD5在数据库中的应用网站往往将用户的账号和密码等信息使用非加密的方式储存到数据库,账号使用类为VarChar的UserCount字段,同样,密码也采用VarChar的password字段,但是如果采用加密方式来存储密码信息,就必须改变密码字段password的类型,MD5是单向加密算法,加密以后就无法解密,如果用户忘记或丢失密码,任何人都很难找回。这样,网站就失去了一项很重要的功能:获取忘记的密码。所以,如果采用这种加密方式的话,想要修改资料就必须将用户重新注册。(二)MD5加密算法应用实例以下是MD5加密算法在中国建设银行的设备管理系统中应用实例(部分代码)。MD5加密算法应用于这个系统中,主要针对用户在注册和登陆时输入的密码,用户注册和登陆的时候所提交的密码是要通过MD5加密算法进行加密之后再去保存到数据库之中的。这样既可以预防用户的密码泄露,也可以防止管理员去非法查看用户的密码,更有效的保护了用户的安全。在本系统中主要用MD5对用户密码进行加密,相关代码如下:public class MD5F,G,H,I是4个基本的MD5函数private long F(10ng x,long Y,long z)return(x&;Y)I(一x)&;z);FF,GG,HH和II将调用F,G,H,I进行近一步变换prvate long FF(10ng a,long b,long c,longd10ng x,long s,long ac)a+=F(b,C,d)+X+ac;a=(int)a;(32一s);a+=b;return a;.md5Init是一个初始化函数,初始化核心变量private void md5Init()countO=OL;count1=OL;state0=0x67452301L;state1=0xefcdab89L;state2=0x98badcfeL;state3=0x10325476L;return;md5Transform是MD5核心变换程序,有md5Update调用,block是分块的原始字节private void md5Transform(byte block)long a=state0,b=stateI,C=state2,d=state3;longx=new long16;Decode(X,block,64);a=FF(a,b,C,d,x0,S11,0xd76aa478L);d=FF(d,a,b,C,x1,S12,0xe8c7b756L);c=FF(c,d,a,b,x2,S13,Ox242070dbL);b=FF(b,C,d,a,x3,S14,Oxc1bdceeeL);stateO+=a;state1+=b;state2+=c;state3+=d;md5Update是MD5的主计算过程,inbuf是要变换的字节串,inputlen是长度,这个函数由get-MD50fStr调用private void md5Update(byteinbuf,intinputLen)inti,index,partLen;byteblock=new byte64;index=(int)(countO3)&;0x3F;if(count0+=(inputLen3)(inputLen29);partLen=64-index;if(inputLen=partLen)md5Memcpy(buffer,inbuf,index,0,partLen);md5Transform(buffer);for(i=partLen;i+63input-Len;i+=64)lmd5Memcpy(block,inbuf,0,i,64);md5Transform(block);index=0;elsei=0;md5Memcpy是一个内部使用的byte数组的块拷贝函数md5Memcpy(buffer,inbuf,index,i,inputLeni);getMD5ofStr是类MD5最主要的公共方法,入口参数是要进行MD5变换的字符串,返回的是变换完的结果public String getMD5ofStr(String inbuf)md5lnit();md5Update(inbufgetBytes(),inbuf1ength();md5Final();md5Final整理和填写输出结果digestHexStr=”;for(inti=0;i16;i+)digestHexStr+=byteHEX(digesti);retumdigestHexStr;在用户登陆时通过MD5算法将信息进行不可逆的加密,不同的用户信息有着不同并且唯一的用户加密信息,即使是有人通过窃取或者入侵数据库等方式获得了用户的重要信息,但也只是加密后的并且无法解密的符号,非常有效的增强了用户信息的安全性。四、MD5加密算法在信息管理系统中的应用此版块主要研究MD5算法在信息管理系统中的应用,首先要构建一个信息管理系统,以人事信息管理系统为例,由于MD5加密算法是在用户输入账号密码时进行加密,所以这里只展示用户在输入账号密码时登陆界面的部分代码。(一)系统的需求分析此系统是为了管理人事而设计的。由于此系统只是示意性的,所以简化了其中十分复杂的人与人之间的管理关系,主要以用户输入的账号密码代码为主。(二)系统的概念结构的设计通过分析此系统得到一个员工试题的模型,包括ID、名字、密码、性别、部门、职务、电话和生日,这个模型反映员工的基本信息。同时也知道了员工与公司关系,这个模型就是我们要建立的数据库项目的基础。员工与公司实体模型如图9所示。员工年龄ID职务姓名属于人数名称公司地址图9 员工与公司实体模型(三)系统总体设计1. 功能描述该信息管理系统可以在WindowsXP平台上运行,开发工具采用VisualBasic语言开发。其工作流程为:用户登录后可以进行信息的录入、修改和删除操作。2. 系统设计的依据以下是对人事管理系统操作进行详细的设计流程,按照结构化的系统设计方法,分析人事管理系统的总体流程图:开始错误信息系统主界面系统登录界面系统管理输入密码N检测密码错误数据库Y功能界面功能处理结束图10 人事系统管理流程图3. 系统详细设计通过对系统进行代码设计、数据库设计以及系统主要界面的设计,来完成系统的详细设计,去实现人事信息的管理。用户界面是指软件系统与用户之间交互的接口,由于使用此系统的用户是那些对计算机技术不是很精通的管理人员,所以本系统采用了比较方便、快捷、友好的用户界面交互方式。图11 系统登陆界面以下是窗体代码:OptionExplicitDimpwdCountAsIntegerPrivateSubcmdCancel_Click()UnloadMeExitSubEndSubPrivateSubcmdOK_Click()DimSQLAsString DimrsAsADODB.RecordsetIfTrim(UserName.Text=)Then MsgBox没有输入用户名称,请重新输入!,vbOKOnly+vbExclamation,警告 UserName.SetFocus Else查询用户SQL=select*fromUserInfowhereUserID=&UserName.Text&Setrs=TransactSQL(SQL)Ififlag=1Then Ifrs.EOF=TrueThen MsgBox没有这个用户,请重新输入!,vbOKOnly+vbExclamation,警告UserName.SetFocusElseIfTrim(rs.Fields(1)=Trim(PassWord.Text)Thenrs.CloseMe.HidegUserName=Trim(UserName.Text) 保存用户名称 FrmMain.ShowUnloadMeElse MsgBox密码不正确,请重新输入!,vbOKOnly+vbExclamation,警告PassWord.SetFocusPassWord.Text=EndIfEndIfElseUnloadMeEndIfEndIfpwdCount=pwdCount+1判断输入次数IfpwdCount=3ThenUnloadMeExitSubEndIfEndSubPrivateSubForm_Load()pwdCount=0gUserName=EndSubPrivateSubPassWord_KeyDown(KeyCodeAsInteger,ShiftAsInteger)TabToEnterKeyCodeEndSub PrivateSubUserName_KeyDown(KeyCodeAsInteger,ShiftAsInteger)TabToEnterKeyCodeEndSub(四)系统测试为了确保本系统能够正常运行,需要在发布之后做一次比较全面的测试。由于只研究了用户登录界面的代码,所以只展示用户登录时的测试结果。首先打开人事信息管理系统,在“用户名”中输入admin,“密码”中输入admin作为用户的登录密码。填写完之后点击“确定”按钮,将会出现系统欢迎界面,表明该用户已经登陆成功了。(五)MD5加密技术的封装和运用1. MD5加密时的流程开始输入用户名和密码MD5加密将加密的数据存入数据库结束图12 MD5加密流程2. MD5加密时需要封装的类由于人事信息管理系统是用VB语言开发的,所以需要一个用VB语言做的MD5封装的类。类模块的主要源码如下:Private Sub MD5Transform(Buffer() As Byte) Dim X(16) As Long, A As Long, B As Long, C As Long, D As Long A = State(1) B = State(2) C = State(3) D = State(4) Decode 64, X, Buffer FF A, B, C, D, X(0), S11, -680876936 FF D, A, B, C, X(1), S12, -389564586 FF C, D, A, B, X(2), S13, 606105819 FF B, C, D, A, X(3), S14, -1044525330 FF A, B, C, D, X(4), S11, -176418897 FF D, A, B, C, X(5), S12, 1200080426 FF C, D, A, B, X(6), S13, -1473231341 FF B, C, D, A, X(7), S14, -45705983 FF A, B, C, D, X(8), S11, 1770035416 FF D, A, B, C, X(9), S12, -1958414417 FF C, D, A, B, X(10), S13, -42063 FF B, C, D, A, X(11), S14, -1990404162 FF A, B, C, D, X(12), S11, 1804603682 FF D, A, B, C, X(13), S12, -40341101 FF C, D, A, B, X(14), S13, -1502002290 FF B, C, D, A, X(15), S14, 1236535329 GG A, B, C, D, X(1), S21, -165796510 GG D, A, B, C, X(6), S22, -1069501632 GG C, D, A, B, X(11), S23, 643717713 GG B, C, D, A, X(0), S24, -373897302 GG A, B, C, D, X(5), S21, -701558691 GG D, A, B, C, X(10), S22, 38016083 GG C, D, A, B, X(15), S23, -660478335 GG B, C, D, A, X(4), S24, -405537848 GG A, B, C, D, X(9), S21, 568446438 GG D, A, B, C, X(14), S22, -1019803690 GG C, D, A, B, X(3), S23, -187363961 GG B, C, D, A, X(8), S24, 1163531501 GG A, B, C, D, X(13), S21, -1444681467 GG D, A, B, C, X(2), S22, -51403784 GG C, D, A, B, X(7), S23, 1735328473GG B, C, D, A, X(12), S24, -1926607734 HH A, B, C, D, X(5), S31, -378558 HH D, A, B, C, X(8), S32, -2022574463 HH C, D, A, B, X(11), S33, 1839030562 HH B, C, D, A, X(14), S34, -35309556 HH A, B, C, D, X(1), S31, -1530992060 HH D, A, B, C, X(4), S32, 1272893353 HH C, D, A, B, X(7), S33, -155497632 HH B, C, D, A, X(10), S34, -1094730640 HH A, B, C, D, X(13), S31, 681279174 HH D, A, B, C, X(0), S32, -358537222 HH C, D, A, B, X(3), S33, -722521979 HH B, C, D, A, X(6), S34, 76029189 HH A, B, C, D, X(9), S31, -640364487 HH D, A, B, C, X(12), S32, -421815835 HH C, D, A, B, X(15), S33, 530742520 HH B, C, D, A, X(2), S34, -995338651 II A, B, C, D, X(0), S41, -198630844 II D, A, B, C, X(7), S42, 1126891415 II C, D, A, B, X(14), S43, -1416354905 II B, C, D, A, X(5), S44, -57434055 II A, B, C, D, X(12), S41, 1700485571 II D, A, B, C, X(3), S42, -1894986606 II C, D, A, B, X(10), S43, -1051523 II B, C, D, A, X(1), S44, -2054922799 II A, B, C, D, X(8), S41, 1873313359 II D, A, B, C, X(15), S42, -30611744 II C, D, A, B, X(6), S43, -1560198380 II B, C, D, A, X(13), S44, 1309151649 II A, B, C, D, X(4), S41, -145523070 II D, A, B, C, X(11), S42, -1120210379 II C, D, A, B, X(2), S43, 718787259 II B, C, D, A, X(9), S44, -343485551 State(1) = LongOverflowAdd(State(1), A) State(2) = LongOverflowAdd(State(2), B) State(3) = LongOverflowAdd(State(3), C) State(4) = LongOverflowAdd(State(4), D)End Sub人事信息管理系统中设置的用户名和密码为“admin”,所以用户在登陆界面输入账号密码后,就会通过MD5进行加密,如果有黑客或者其他用户盗取密码,他会得到一长串字符或者乱码,所以破解通过MD5加密后的密码是十分困难的。五、MD5加密算法的安全性可以看出,MD5是非常复杂的。Rivest为了让MD5不会对两
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 防治质量通病的措施
- (新)《美术鉴赏》测试题及答案
- 2026年高考北京卷政治考试复习试卷及答案
- 2025年绵阳南山双语中学初一入学数学分班考试真题含答案
- 第13课 在幻灯片中插入超链接教学设计小学信息技术(信息科技)四年级第3册滇人版
- 第三节 城乡规划中的主要产业布局教学设计高中地理人教版选修4城乡规划-人教版2004
- 第二单元 化学能与电能的转化教学设计高中化学苏教版选修化学反应原理-苏教版2004
- 安徽省长丰县高中数学 3.2 复数代数形式的四则运算 3.2.2 掌握复数的代数形式的乘、除运算教学设计 新人教A版选修1-2
- 高中英语人教版 (新课标)必修1&2Unit 1 Friendship教案及反思
- 人教版 (2019)选择性必修1第一节 反应热教案
- 2026年汽车销售店员工劳动合同三篇
- 2026年知识产权知识竞赛题库及答案
- 制程检验作业管理办法培训
- 妇科疾病的护理科研进展
- 培训合作协议范本及风险提示
- 2025下半年上海市闵行区区管国企招聘8人(第二批)笔试参考题库附带答案详解
- 2025急诊科护理指南
- AIGC商业应用实战教程02AIGC工具全览
- 软件供应链安全培训内容课件
- 2026春招:中国华能笔试题及答案
- (正式版)DB64∕T 2169-2025 《 煤矸石路基填筑应用技术规范》
评论
0/150
提交评论