md5算法设计与实现-网络安全课程设计-文魏超-11408400138
网络安全课程设计
湖南工业大学
课 程 设 计
资 料 袋
计算机与通信学院 学院(系、部) 2013 ~ 2014 学年第 2 学期 课程名称 网 络 安 全 指导教师 洪升彪 职称 讲师 学生姓名 文 魏 超 专业班级 网 络 工 程 学号 11408400138 题 目 MD5加 密 系 统 的 设 计 与 实 现 成 绩 起止日期 2014 年 6 月 16 日, 2014 年 6 月 20 日
目 录 清 单
序号 材 料 名 称 资料数量 备 注 1 1 课程设计任务
书
关于书的成语关于读书的排比句社区图书漂流公约怎么写关于读书的小报汉书pdf
2 1 课程设计
说明书
房屋状态说明书下载罗氏说明书下载焊机说明书下载罗氏说明书下载GGD说明书下载
3 4 5 6
网络安全课程设计
课程设计任务书
2013 —2014学年第 1 学期
学院(系、部) 计算机与通信学院 专业 网络工程 班级 111-2 课程名称: 网 络 安 全 学生姓名: 文 魏 超 设计题目: MD5加 密 系 统 的 设 计 与 实 现 指导教师: 洪 升 彪 完成期限:自 2014 年 6 月 16 日至 2014 年 6 月 20 日 共 1 周
一、设计内容
设计一个MD5算法加密系统,要求用MFC图形开发包和vc++开发软件。首先,设计一
个漂亮的界面,添加文本加密按钮、文件加密按钮和显示加密后能够显示的密文的列表框。
其次实现每个按钮相应的功能,要求每个功能都能实现。最后,注上每个函数的功能,完 成功能测试与调试。 内 二、设计任务 容 课程设计说明书(纸质+电子版),内容包括:设计内容、系统分析(包括可行性分析、及 需求分析等)及功能分析;系统设计(要求画出系统整体功能框图、流程图、并给出相应地任 关键的代码且对所使用的主要数据结构进行说明等。)、设计总结(评价/遇到的问题/体会/务 建议等)、使用说明等。 三、设计要求
1. 按功能要求开发系统,能正确运行。程序代码书写
规范
编程规范下载gsp规范下载钢格栅规范下载警徽规范下载建设厅规范下载
,有充足的注释。
2. 课程设计所使用的编程语言任选,但建议使用C或C++;
1. 绿色软件:程序运行不需安装,避免写系统和注册表;
起止日期 工作内容 进
课程设计前一周 召开动员大会~学生选题。 度 2014-06-16~2014-06-17 系统分析和设计。 安 2014-06-17~2014-06-18 熟悉软件开发工具、编码系统、系统测试以及中期答辩。 排 2013-06-19~2014-06-20 撰写并提交课程设计说明书 (含电子文档)、源程序等。
[1]罗宇、邹鹏、邓胜兰等著(《网络安全》[M](北京:电子工业出版社,2011 主
[2] Andrew S.Tanenbaum 著(陈向群等译(《现代网络安全》[M](北京:机械工业出版社 要
[3] 邓胜兰编著(《网络安全基础》[M](北京:机械工业出版社,2009 参
[4] Dave Probert著,陈向群等译《Windows网络安全原理》[M](北京:机械工业出版 考
[5] 罗宇 褚瑞等等著(《网络安全课程设计》[M](北京:机械工业出版,2004 资
料
指导教师(签字): 年 月 日 系(教研室)主任(签字): 年 月 日
I
网络安全课程设计
课程设计说明书
课程名称: 网 络 安 全 设计题目: MD5 加 密 系 统 的 设 计 与 实 现 专 业: 网 络 工 程 班级: 1101 班 学生姓名: 文 魏 超 学号: 11408400138 指导教师: 洪 升 彪
2014年06月20日
II
网络安全课程设计
目录
一、 需求分析 ....................................................................................... 1 1.1 简介.................................................................................................................... 1 1.2 系统开发背景.................................................................................................... 1 二、 概要设计 ....................................................................................... 2 2.1 系统开发环境.................................................................................................... 2 2.2 系统需求分析.................................................................................................... 2
2.2.1 总体功能分析 ............................................................................................ 2
2.2.2 核心功能分析 ............................................................................................ 2 三、 详细设计 ....................................................................................... 3 3.1 系统开发流程.................................................................................................... 3
3.1.1 MD5算法了解 ........................................................................................... 3
3.1.2 MD5算法C++类的设计 ............................................................................ 4
3.1.3 调用类加密 ................................................................................................ 4 3.2 系统结构............................................................................................................ 5
3.3.1 系统模块结构图 ........................................................................................ 6
3.3.2 系统流程图 ................................................................................................ 7 3.3 界面设计............................................................................................................ 8 四、 测试结果 ....................................................................................... 9 4.1 测试方法............................................................................................................ 9 4.2 测试结果............................................................................................................ 9 五、 用户使用说明 ............................................................................. 10 六、 课程设计总结 ............................................................................. 11 七、 参考文献 ..................................................................................... 12
III
网络安全课程设计
MD5加密算法的设计与实现
一、需求分析
1.1 简介
1.MD5的全称是Message-Digest Algorithm 5(信息-摘要算法),在90年代初由MIT Laboratory for Computer Science和RSA Data Security Inc的Ronald L. Rivest开发出来,经MD2、MD3和MD4发展而来。
2. MD5就是采用单向加密的加密算法,对于MD5而言,有两个特性是很重要的,第一是任意两段明文数据,加密以后的密文不能是相同的;第二是任意一段明文数据,经过加密以后,其结果必须永远是不变的。前者的意思是不可能有任意两段明文加密以后得到相同的密文,后者的意思是如果我们加密特定的数据,得到的密文一定是相同的。
1.2 系统开发背景
1.目前,计算机大批量数据存储的安全问题、敏感数据的防窃取和防篡改问题越来越引起人们的重视。数据库系统作为计算机信息系统的核心部件,数据库文件作为信息的聚集体其安全性将是信息产业的重中之重。但不可否认的是,作为数据存取的整体安全要求而言,安全的DBMS仅是其中的一个部分,另一个部分则是安全的网络安全以及安全的DBMS与安全网络安全的接口,只有三者有机结合才能成为一个完整的数据安全体系。
2.MD5加密算法是不可逆的,想要解密MD5算法加密的密文,相当于分解两个大的素数。所以MD5算法是比较安全的一种加密算法。
1
网络安全课程设计
二、概要设计
2.1 系统开发环境
本系统采用开发环境是VC++,应用的图形包是MFC图形包。Microsoft
Visual C++是Microsoft公司推出的开发Win32环境程序,面向对象的可视
化集成编程系统。它不但具有程序框架自动生成、灵活方便的类管理、代码
编写和界面设计集成交互操作、可开发多种程序等优点,而且通过简单的设
置就可使其生成的程序框架支持数据库接口、OLE2,WinSock网络、3D控制
界面。
2.2 系统需求分析
1.需要设计一个简单并且易操作的图形界面,系统能够打开文件并且对
文件中的明文信息进行加密。
2.设计的系统能够让用户随心所欲输入自己想要输入的信息进行加密
处理。
3.要求文件里的内容和文本里的内容一样时,加密出来的密文应该是一
致的。
2.2.1 总体功能分析
系统具有图形界面,并且系统能够对文件里的内容和文本内容进行加密
处理;界面有漂亮的背景,而且没有冗余的代码和BUG。
2.2.2 核心功能分析
核心功能是MD5算法的过程,系统能够正确地获取文本信息和文件信息
及明文,然后把需要加密的明文存放到数组里。正确调用加密算法获得密文
信息,然后在界面上对应的地方输出明文信息。
2
网络安全课程设计
三、详细设计
3.1 系统开发流程
3.1.1 MD5算法了解
信息安全的核心技术是应用密码技术。密码技术的应用远不止局限于提供机密性服务,密码技术也提供数据完整性服务。密码学上的散列函数(Hash Functions)就是能提供数据完整性保障的一个重要工具。Hash函数常用来构造数据的短“指纹”,消息的发送者使用所有的消息产生一个短“指纹”,并将该短“指纹”与消息一起传输给接收者。即使数据存储在不安全的地方,接收者重新计算数据的指纹,并验证指纹是否改变,就能够检测数据的完整性。这是因为一旦数据在中途被破坏或改变,短指纹就不再正确。
散列函数是一个函数,它以一个变长的报文作为输入,并产生一个定长的散列码,有时也称为报文摘要,作为函数的输出。散列函数最主要的作用是用于鉴别,鉴别在网络安全中起到举足轻重的地位。鉴别的目的有以下两个:第一,验证信息的发送者不是冒充的,同时发信息者也不能抵赖,此为信源识别;第二,验证信息完整性,在传递或存储过程中未被篡改,重放或延迟等。
对于任意长度的明文,MD5首先对其进行分组,使得每一组的长度为512位,然后对这些明文分组反复重复处理。
对于每个明文分组的摘要生成过程如下:
(1)将512位的明文分组划分为16个子明文分组,每个子明文分组为32位。
(2)申请4个32位的链接变量,记为A、B、C、D。
(3)子明文分组与链接变量进行第1轮运算。
(4)子明文分组与链接变量进行第2轮运算。
(5)子明文分组与链接变量进行第3轮运算。
(6)子明文分组与链接变量进行第4轮运算。
(7)链接变量与初始链接变量进行求和运算。
(8)链接变量作为下一个明文分组的输入重复进行以上操作。
(9)最后,4个链接变量里面的数据就是MD5摘要。
3
网络安全课程设计
3.1.2 MD5算法C++类的设计
class CMD5Checksum
{
public:
//对于RSA的MD5算法变量定义
static CString GetMD5(BYTE* pBuf, UINT nLength);
static CString GetMD5(CFile& File);
static CString GetMD5(const CString& strFilePath);
protected:
CMD5Checksum();
virtual ~CMD5Checksum() {};
void Transform(BYTE Block[64]);
void Update(BYTE* Input, ULONG nInputLen);
CString Final();
inline DWORD RotateLeft(DWORD x, int n);
inline void FF( DWORD& A, DWORD B, DWORD C, DWORD D, DWORD X, DWORD S, DWORD T);
inline void GG( DWORD& A, DWORD B, DWORD C, DWORD D, DWORD X, DWORD S, DWORD T);
inline void HH( DWORD& A, DWORD B, DWORD C, DWORD D, DWORD X, DWORD S, DWORD T);
inline void II( DWORD& A, DWORD B, DWORD C, DWORD D, DWORD X, DWORD S,
DWORD T);
void DWordToByte(BYTE* Output, DWORD* Input, UINT nLength);
void ByteToDWord(DWORD* Output, BYTE* Input, UINT nLength);
private:
BYTE m_lpszBuffer[64]; //输入缓冲区
ULONG m_nCount[2]; //模2^64(LSB在前)
ULONG m_lMD5[4]; //MD5校验
};
3.1.3 调用类加密
void CDoc_md5Dlg::Onwenben()
{
// TODO: Add your control notification handler code here
4
网络安全课程设计
//对文本进行加密
CString str_ReourceText;
GetDlgItem(IDC_EDIT1)->GetWindowText(str_ReourceText);
str_ReourceText.ReleaseBuffer();
MessageBox("加密成功");
str_ReourceText = CMD5Checksum::GetMD5((BYTE*)(const char*)str_ReourceText.GetBuffer(0),str_ReourceText.GetLength());
//set the result text
SetDlgItemText(IDC_STATIC_RESUAL,str_ReourceText); }
3.2 系统结构
MD5MD5MD5加密系统加密系统加密系统
登陆
文本加密文件加密文件加密
输出密文输出密文
图3-1
5
网络安全课程设计
3.3.1 系统模块结构图
-2 图3
6
网络安全课程设计
3.3.2 系统流程图
开始
文件加密/文本加密,
文件加密文本加密打开需加密文件输入文本信息
加密成功,
得到密文
结束
图3-3
7
网络安全课程设计
3.3 界面设计
图3-4
8
网络安全课程设计
四、测试结果
4.1 测试方法
第一步:在编辑框里输入加密的明文(及11.txt里内容),单击文本加密按钮就
记录
混凝土 养护记录下载土方回填监理旁站记录免费下载集备记录下载集备记录下载集备记录下载
下MD5算法加密后的密文。
第二步:打开桌面的文件11.txt,单击文件加密按钮就记录下MD5算法加密文件内容后的密文。
第三步:对比两个密文是否相同,如果相同这成功。
4.2 测试结果
图4-1
从上图中可以看出两个密文是一致的,所以加密成功。
9
网络安全课程设计
五、用户使用说明
第一步:找到打开工程文件加下的Debug文件夹,然后找到文件夹里的Doc_md5.exe文件。
第二步:双击Doc_md5.exe文件,打开加密软件程序。
第三步:在编辑框里输入想要加密的明文,单击文本加密按钮就可以看到MD5算法加密后的密文。
第四步:打开想要加密的文件,单击文件加密按钮就可以看到MD5算法加密文件内容后的密文。
10
网络安全课程设计
六、课程设计总结
1.时至今日,一个礼拜的课程设计终于可以画上一个句号了,但是现在回想起来做课程设计的整个过程,颇有心得,其中有苦也有甜,不过乐趣尽在其中~没有接受课程设计任务以前觉得网络
协议
离婚协议模板下载合伙人协议 下载渠道分销协议免费下载敬业协议下载授课协议下载
分析课程设计只是对这一学期来所学知识的单纯总结,但是通过这次做课程设计发现自己的看法有点太片面、太偏激了,网络安全课程设计设计心得体会。课程设计不仅是对前面所学知识的一种检验,而且也是对自己学习能力与探索知识能力的一种提高,它我不断地与到困难到我解决困难,让我的实力不断地提高不少,真是不枉此行。
2.不管学会的还是学不会的的确觉得困难比较多,真是万事开头难,不知道如何入手。还得出一个结论:知识必须通过应用才能实现其价值~有些东西以为学会了,但真正到用的时候才发现是两回事,所以我认为只有到真正会用的时候才是真的学会了。
3.在此要感谢老师对我要求的严格与逼迫,感谢老师给我这样的机会锻炼。在整个课程设计过程中我懂得了许多东西,也培养了我独立工作的能力,树立了对自己工作能力的信心,相信会对今后的学习工作生活有非常重要的影响。而且大大提高了动手的能力,使我充分体会到了在创造过程中的探索的艰难和成功的喜悦。虽然这个项目还不是很完善,但是在设计过程中所学到的东西是这次课程设计的最大收获和财富,使我终身受益。
4.随着科学技术日新月异的不断发展,网络安全也在不断的变化发展当中,这就要求我们用相应的知识来武 装自己,夯实基础,为将来走向工作岗位,贡献社会做好充分的准备,我相信乘风破浪会有时 直挂云帆济沧海。
5.我知道这些课程设计都是通向成功之门必不可少的奠基石,未来的路还长,我需要的奠基石还不少,在以后的无论是学习和生活,我都会认真去对待,课程设计也一种生活,认真对待它可以反映出你对待生活的态度。
6.路漫漫其修远兮,我将上下而求索。端正态度,认真对待学习和生活,为自己的未来给自己加油~
11
网络安全课程设计
七、参考文献
[1]罗宇、邹鹏、邓胜兰等著(《网络安全》[M](北京:电子工业出版社,2011
[2] Andrew S.Tanenbaum 著(陈向群等译(《现代网络安全》[M](北京:机械工业出版社
[3] 邓胜兰编著(《网络安全基础》[M](北京:机械工业出版社,2009
[4] Dave Probert著,陈向群等译《W网络安全原理》[M](北京:机械工业出版
[5] 罗宇 褚瑞等等著(《网络安全》[M](北京:机械工业出版,2004
[6] (美)Bruce Schneier.应用密码学. 北京:机械工业出版社,2000
[7] 袁津生、吴砚农 著.《计算机网络安全基础》第四版.人民邮电出版社,2013年7月第4版
12