MD5算法的研究与实现_数据存储加密
摘 要
随着网络技术的广泛应用,网络信息安全越来越引起人们的重视。针对数据在存储的时候存在大量的安全问题,目前通常将需要存储的数据进行加密然后再存储,应用MD5算法是一个不错的选择。MD5算法的全称是Message-Digest algorithm 5,是一种用于产生数字签名的单项散列算法。它的作用是让大容量信息在用数字签名软件签署私人密钥前被“压缩”成一种保密的格式,即将一个任意长度的“字节串”通过一个不可逆的字符串变换算法变换成一个128bit的串。
该毕业设计是运用microsoft visual c++ 6.0软件而开发的,主要是通过算法实现数据的加密存储。文章分成五部分。第一,二部分描述了MD5的目前现状和相关理论知识,也让我们了解MD5的定义。重点是MD5的流程实现和封装DLL。在MD5算法的DLL封装这章,主要是描述我们为什么要选用封装DLL的原因,以及封装的好处。设计流程这一部分里包含读取,修改,插入,删除这几个功能的实现情况,并用流程图的方式来分别描述了这四大功能模块的实现过程。最后一部分显示了系统测试的内容和系统主要功能运行界面图。http://www.16sheji8.cn/
关键词:信息安全;MD5;加密;封装
The Research and Implementation for MD5 Algorithm
-------- Data Storage and Encryption
Abstract
With the wide application of the network technology, the information of the network safety causes people's attention more and more. A large number of security questions appear while storing data, the data that usually store needing at present are encrypted then stored, it is a good choice to use MD5 algorithm. The full name of MD5 algorithm is Message-Digest algorithm 5, is that a kind of individual event used for producing figures and signed breaks up and arranges algorithms. Its function is to let large capacity information " compress " and become a kind of secret form before signing the private key with the digital signature software, vary " byte bunch " of a wanton length into a great integer of one 128bit through an irreversible one bunch of algorithms of varying of character .
Used Microsoft Visual C++ 6.0 software and developed in this graduation project, is mainly to realize through the algorithm that the encryption of the data is stored. The article is divided into five parts. The first and second parts are describing the current situation and relevant theory knowledge at present of MD5, let us understand the definition of MD5. The focal point is the procedure of MD5 is realized and encapsulation to Dynamic Link Library. In this chapter of encapsulation MD5 class library to Dynamic Link Library, mainly describe why we will select encapsulation Dynamic Link Library for use , and the advantage of encapsulation . Design this of procedure and include reading in the part , revise , insert, delete the realization situations of these functions, and has described the realization course of this four major functions module respectively in way of the flow chart . The last part has shown that the content of system testing and main function of system operate the interface picture .
Key words: information security; MD5; encrypt; Packaging
目 录
论文总页数:23页
1 引言 1
1.1 研究现状 1
1.2 选题意义 2
1.3 选题背景 2
2 相关理论基础 3
2.1 单向散列函数 3
2.1.1 单向散列函数的基本原理 3http://www.16sheji8.cn/
2.1.2 散列值的长度 4
2.2 MD5算法的基本原理 4
2.3 MD5的应用 12
3 需求分析及设计方案 14
3.1 主要功能模块 14
3.1.1 数据加密 14
3.1.2 数据存储 14
3.1.3 数据库设计 14
3.2 主要流程图 15
4 MD5算法的DLL封装 15
4.1 加载时动态链接 16
4.2 运行时动态链接 16
4.3 DLL封装情况 16
5 具体设计流程及实现 17
5.1 读取的设计和实现 17
5.2 插入的设计和实现 18
5.3 修改的设计和实现 18
5.4 删除的设计和实现 19
6 调试与分析 19
6.1 概述 19
6.2 测试分析报告 20
结 论 20
参考文献 21
致 谢 22
声 明 23http://www.16sheji8.cn/
1 引言
随着网络通信技术和Internet的联系日益增强,出现了一系列与网络安全相关的问题:如对主机的攻击,网络上传输的信息被截取、篡改、重发等,由此,它对网络应用的进一步推广构成了巨大威胁,因此密码体制[1]就在这种背景下应运而生了。存储加密涉及大量文件、资料、新建等文档处理,需要高效,可靠的进行各种信息交换,同时对信息流转的整个过程需要有效的组织和监控。对数据的安全存储和安全传输具有较高的要求。数据加密技术不仅具有保证信息机密性的信息加密功能,而且具有数字签名、秘密分存、系统安全等性能。因而可以保障信息的机密性、完整性和准确性,防止信息被篡改、伪造和假冒[2]。虽然目前已有很多加密技术应用于各个领域,但是存在加密强度、运算量大等缺陷,因而本文提出了一种新的加密机制—MD5加密。
同时,在竞争日趋激烈的今天,只有实行对数据加密的加强管理,建设性提高信息安全在网络中的地位,以至在竞争中求生存,以期更好地发展下去。
1.1 研究现状
MD5的全称[3]是Message-Digest algorithm 5(信息--摘要算法),MD5是一种不可逆的算法,即对生成的密文求逆,对应着无穷多个逆。在90年代初由MIT Laboratory for Computer Science(IT计算机科学实验室)和RSA Data Security Inc(RSA数据安全公司)的Ronald L.Rivest开发出来,经MD2,MD3和MD4发展而来。它的作用是让大容量信息在用数字签名软件签署私人密钥前被“压缩”成一种保密的格式(把一个任意长度的字节串变换成一定长的大整数)。不管是MD2,MD4还是MD5,它们都需要获得一个随机长度的信息,并产生一个128位的信息摘要。虽然这些算法的结构或多或少有些相似,但是MD2的设计与MD4和MD5完全不同,是因为MD2是为8位机器做过设计优化的,而MD4和MD5却是面向32位的电脑。Rivest在1989年开发出MD2算法,在这个算法中,首先对信息进行数据补位,使信息的字节长度是16的倍数,然后,以一个16位的检验和追加到信息末尾,并且根据这个新产生的信息计算出散列值。后来,Rogier和Chauvaud发现,如果忽略了检验和,那样就将产生MD2冲突。MD2算法的加密后结果是唯一的---即没有重复。http://www.16sheji8.cn/