信息安全技术课程设计.docx
《信息安全技术课程设计.docx》由会员分享,可在线阅读,更多相关《信息安全技术课程设计.docx(25页珍藏版)》请在冰豆网上搜索。
信息安全技术课程设计
系专业班学号姓名
┉┉┉┉┉┉┉┉┉┉┉密┉┉┉┉┉┉┉┉┉┉封┉┉┉┉┉┉┉┉┉┉线┉┉┉┉┉┉┉┉┉┉
试卷类型:
A
一、要求
二、题目(任选一题或自拟,自拟题目必须是基于网络信息安全方向,可加副标题)
1.VPN技术的应用
2.安全的即时通讯
3.安全数据库系统
4.安全网络身份认证
5.CA系统
6.站点内容安全过滤
7.安全电子商务(政务)网站设计
8.安全电子锁
9.网络攻击防护
10.入侵检测系统
注意:
必须提交可实际运行的系统及文件程序和设计报告;按实际项目开发流程实施,注意合理的运用课堂所学习的知识和技术;掌握较大系统项目开发的方法;需要修改或自拟题目,要和课程内容相关并事先征得老师同意。
2引言
随着网络的发展,互联网技术的应用日益增强,随之而来的是一系列与网络安全相关的问题:
如对主机的攻击,网络上传输的信息被截取、篡改、重发等,由此,它对网络应用的进一步推广构成了巨大威胁,于是数据加密便成了软件项目开发的重要之处。
数据加密技术不仅具有保证信息机密性的信息加密功能,而且具有数字签名、秘密分存、系统安全等性能。
因而可以保障信息的机密性、完整性和准确性,防止信息被窃取、篡改、伪造和假冒。
因此本系统运用了MD5数据加密技术。
同时,在竞争日趋激烈的今天,只有实行对数据加密的加强管理,建设性提高信息安全在网络中的地位,以至在竞争中求生存,以期更好地发展下去。
3摘要
近年来,随着电脑的普及,互联网技术的发展与互联网信息市场的不断完善,网络已经成为人们学习生活不可或缺的一部分,在人们获取知识、了解社会方面更是扮演着重要角色,社会的各行各业都离不开互联网。
本设计尝试用ASP.NET架构一个基于MD5的用户登录系统,本文从理论和实践两个角度出发,论文首先较为详尽地介绍了系统设计的有关概念与技术,特别深入介绍了在系统开发过程中用到的开发平台、开发语言以及MD5数据加密的介绍,接着对基于MD5的用户登录系统的可行性及需求进行了分析,最后对系统的主要页面、数据库、应用程序的设计与实现作了较为详细的讲解。
本系统是在MicrosoftSQLServer2005和MicrosoftVisualStudio2008开发平台实现的,其主要功能有:
管理员具有登录、查询、修改删除信息功能普通用户具有注册、登录、查询、修改信息功能等。
论文在撰写过程中,力求将理论与实践应用相结合,对各种理论进行阐述的同时配合系统从实际应用和操作技巧上加以说明,希望能够更充分地体现到这些知识与技术在本系统中的应用与实现。
关键词:
信息加密;c#语言;MD5加密;登录系统。
目录
1试题1
2引言2
3摘要3
4系统分析5
4.1可行性分析5
4.2需求分析5
5系统设计6
5.1概要6
5.2开发技术简介6
5.3系统功能模块划分6
5.4系统数据库设计7
6详细功能设计9
7操作说明17
结束语18
参考文献19
附录20
4系统分析
4.1可行性分析
系统可行性分析的任务是在初步调查的基础上确定项目开发是否必要和可行。
可行性研究是针对系统进行全面、概要的分析,主要包括三方面:
技术可行性、经济可行性和社会可行性。
可行性研究报告是系统研制人员在可行性研究工作阶段的成果。
一经讨论、审定通过后,根据确定的系统方案对系统开发者下达系统设计任务书,对新系统开发工作的可行性做出结论或提出建议。
1.技术可行性
该系统是根据科学的管理方法与编程技术而开发设计的,能符合各种技术要求,拥有较高的存储能力、较高的处理速度、较为安全的信息保护。
该系统需要设计人员具有数据库和前台制作操作的能力,鉴于曾学习过MicrosoftSQLServer2005和MicrosoftVisualStudio2008的操作,即使遇到了简单的技术问题,也能很快地通过查询课本或询问老师等方式解决。
若要运行这两个软件,进行系统设计的计算机操作系统需为Windows2000以上版本,开发语言为ASP.NET(C#),所以,该系统在技术方面具有可行性。
2.经济可行性
从经济上来说,由于选择的开发工具和服务器几乎全部为免费的开源软件,且不需要购置大型设备,因而经济上可行。
3.社会可行性
经过分析,本系统对区别于普通的用户系统,利用加密技术,对用户的密码进行了保护,增加了系统的安全性。
因此,在社会层面是可行的。
4.2需求分析
目前,大型关系数据库管理系统都具备一整套完善的安全管理手段,包括识别角色权限、访问控制、安全审计等功能。
其中的角色权限管理已经相当完善,基本能够满足权限分配的需要;访问控制已经精确到字段级,达到关系型数据库管理的最小粒度。
尽管数据库管理系统本身的安全措施已经相当完备,但是仍然无法完全解决数据安全的需求。
若要满足业务数据的安全需要,必须对数据库保护的最有效的方法就是对敏感数据进行加密处理,这样,即使能够通过非法途径得到数据库的数据,也是得不到其明文形式的。
实现数据库加密并结合密钥管理以后,数据库里的数据由用户自己的密钥来进行访问,不同的用户只能访问自己权限以内的数据,这样大大地提高了数据的安全性。
由此可见,数据库加密的需求是需要的。
5系统设计
5.1概要
5.1.1功能设计思想
1.首先创建一个登入页面,在系统页面上可以登入和注册。
2.a.普通用户登入:
可以查看用户名单,用户登录后可以修改个人信息及密码;
b.管理者登入:
不仅可以查看用户名单还可以选择对用户进行删除和修改。
3.如果选择注册,这要填入相应的信息点击确定就可以注册成功,返回进入登入页面。
5.1.2安全性设计
系统设计时在用户注册和修改密码时进行了加密,加密时直接引用MD5加密算法即可,方便有效,保护了用户的密码安全。
5.2开发技术简介
本系统使用MicrosoftVisualStudio2008作为开发平台,C#作为开发语言,采用MicrosoftSQLServer2005作为前台数据库,该数据库系统在安全性、准确性和运行速度方面有绝对的优势,并且处理数据量大、效率高,C#是一门简单现代面向对象和类型安全的编程语言,为程序员提供了十分灵活的操作。
MicrosoftVisualStudio2008是面向WindowsVista、Office2007、Web2.0的下一代开发工具,引入了250多个新特性,整合了对象、关系型数据、XML的访问方式,语言更加简洁。
使用VisualStudio2008可以高效开发Windows应用程序。
同时VisualStudio2008支持项目模板、调试器和部署程序。
MD5算法的全称是Message-Digestalgorithm5,是一种用于产生数字签名的单项散列算法。
它的作用是让大容量信息在用数字签名软件签署私人密钥前被“压缩”成一种保密的格式,即将一个任意长度的“字节串”通过一个不可逆的字符串变换算法变换成一个128bit的串。
DLL文件又称"应用程序拓展",是软件文件类型。
在Windows中,许多应用程序并不是一个完整的可执行文件,它们被分割成一些相对独立的动态链接库,即DLL文件,放置于系统中。
当我们执行某一个程序时,相应的DLL文件就会被调用。
5.3系统功能模块划分
管理员功能模块
管理员具有登录、查询、修改删除信息功能
普通用户功能模块
普通用户具有注册、登录、查询、修改信息功能
系统模块图(如图1-1)
图1-1
5.4系统数据库设计
数据库表结构如表1-1
表1-1
表1-2
6详细功能设计
详细功能及运行测试
管理员功能:
1.管理员登录:
输入管理员姓名及密码,选择管理员,点击登录如图2-1
图2-1
2.管理员登录后进去用户信息界面如图2-2
图2-2
3.管理员修改用户信息如图2-3
图2-3
4.管理员修改用户信息成功如图2-4
图2-4
普通用户功能
5.输入姓名及密码,选择普通用户,点击登录如图2-5
图2-5
6.普通用户查询和编辑界面如图2-6
图2-6
7.普通用户个人信息如图2-7
图2-7
8.普通用户点击编辑,修改个人信息如图2-8
图2-8
9.普通用户修改个人信息成功如图2-9
图2-9
10.普通用户修改密码如图2-10
图2-10
11.普通用户修改密码成功如图2-11
图2-11
12.普通用户修改密码失败如图2-12
图2-12
13.普通用户输入姓名,密码,确认密码,注册如图2-13
图2-13
14.注册成功如图2-14
图2-14
15.注册成功后登录如图2-15
图2-15
16.注册前后数据库中数据如图2-16
图2-16
17.注册成功后数据库中数据如图2-17
图2-17
7操作说明
运行环境:
MicrosoftSQLServer2005和MicrosoftVisualStudio2008
操作:
1.普通用户登录:
可以查看用户名单,用户登录后可以修改个人信息及密码;
如果选择注册,这要填入相应的信息点击确定就可以注册成功,返回进入登入页面。
2.管理员登录:
不仅可以查看用户名单还可以选择对用户信息进行删除和修改操作。
结束语
作为一名大三的学生,这是第一次完成系统后写一篇比较正规的小论文,所以还是有很多不足的地方。
经过这段时间的课程设计,从开始的选题,到收集资料,做知识储备,到现在的最终设计阶段,我在这之中学到了很多很多。
这次我做的小系统是基于MD5的用户登录系统,经过努力,基于MD5的用户登录系统的设计已初步完成,包括了用户注册、登录、查询、修改个人信息以及管理员登录、修改、查询信息等功能。
系统关于数据加密这部分,我将MD5加密算法打包成了DLL文件,方便在各个功能模块直接引用,总体上,已经基本完成了最初制定的计划功能。
但在实际运用时还有一些不足,功能略微简单,也没有很完善,接下来还是会继续改进。
在系统完成之际,我感触颇深,也深感自己知识的不足,系统在调试过程中经过了无数次的修改,才最终定型的。
在设计过程中遇到了不少的麻烦,也烦恼过,也想放弃,但最终还是走下来了。
感到最大的收获就是平时的努力,终于有了回报。
内心当中有一种充实感。
虽然其中有一些技术功能现在还没有得到解决,但是我在探索的途中学到了很多知识,遇到困难,我们要做的不是去怕它,而是想办法去找寻解决困难的方法,相信自己在未来的学习、工作、生活中会更加的努力。
参考文献
[1]冯登国,信息安全技术概率(第2版).电子工业出版社.
[2]郝刚,ASP.NET2.0开发指南[M].北京:
人民邮电出版社.
[3]王珊,萨师煊.数据库系统概论第四版[M].北京:
高等教育出版社.
[4]蒋培,王笑梅.ASP.NETWeb程序设计[M].北京:
清华大学出版社.
[5]李克洪,实用密码学与计算机数据安全,东北大学出版社.
[6]陈波,信息安全案例教程:
技术与应用,机械工业出版社.
[7]张海藩.软件工程[M].北京:
人民邮电出版.
[8]魏红芹,计算机信息安全管理实验教程,清华大学出版社
[9]曹祖圣,吴明哲.VisualC#.NET程序设计经典[M].北京:
科学出版社.
[10]彭文波.MD5算法原理及应用[EB/OL].中国知网.
附录
程序开发源代码
dl.aspx
publicpartialclassdl:
System.Web.UI.Page
{
protectedvoidPage_Load(objectsender,EventArgse)
{
}
protectedvoidButton1_Click(objectsender,EventArgse)
{
stringconnection="DataSource=.;InitialCatalog=A;IntegratedSecurity=True";
using(SqlConnectionconn=newSqlConnection(connection))
{
if(this.Identity.SelectedValue=="管理员")
{
conn.Open();
SqlCommandcmd=newSqlCommand();
cmd.Connection=conn;
cmd.CommandText="selectcount(*)fromnews2whereUserName='"+TextBox1.Text+"'and[password]='"+TextBox2.Text+"'andlevel='0'";
inti=Convert.ToInt32(cmd.ExecuteScalar());
conn.Close();
if(i>0)
{
Response.Write("alert('欢迎使用!
');location='glyedit.aspx'");
Session["UserName"]=TextBox1.Text;
}
else
{
Response.Write("alert('登录失败!
');location='dl.aspx'");
}
}
else
{
//stringpassword=System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(TextBox2.Text.Trim(),"MD5");
//调用接口的方式来实现
stringorgin=TextBox2.Text.Trim();
stringpassword=Mdfive.Encrypt(orgin);
conn.Open();
SqlCommandcmd=newSqlCommand();
cmd.Connection=conn;
cmd.CommandText="selectcount(*)fromnews2whereUserName='"+TextBox1.Text+"'and[password]='"+password+"'andlevel='1'";
inti=Convert.ToInt32(cmd.ExecuteScalar());
conn.Close();
if(i>0)
{
Response.Write("alert('欢迎使用!
');location='welcome.aspx'");
Session["UserName"]=TextBox1.Text;
}
else
{
Response.Write("alert('登录失败!
');location='dl.aspx'");
}
}
}
}
protectedvoidButton2_Click(objectsender,EventArgse)
{
Response.Redirect("reg.aspx");
}
}
reg.aspx
publicpartialclassreg:
System.Web.UI.Page
{
protectedvoidPage_Load(objectsender,EventArgse)
{
}
protectedvoidButton2_Click(objectsender,EventArgse)
{
Response.Redirect("dl.aspx");
}
protectedvoidButton1_Click(objectsender,EventArgse)
{
stringconnection="DataSource=.;InitialCatalog=A;IntegratedSecurity=True";
//stringconnection="";
using(SqlConnectionconn=newSqlConnection(connection))
{
conn.Open();
SqlCommandcmd=newSqlCommand();
cmd.Connection=conn;
//根据用户名查询
cmd.CommandText="selectcount(*)fromnews2whereUserName='"+TextBox1.Text.Trim()+"'";
//
intcount=Convert.ToInt32(cmd.ExecuteScalar());
if(count==0)
{
cmd=newSqlCommand();
cmd.Connection=conn;
cmd.Parameters.Add("@UserName",SqlDbType.VarChar,10);
cmd.Parameters["@UserName"].Value=TextBox1.Text;
cmd.Parameters.Add("@password",SqlDbType.VarChar,10).Value=TextBox2.Text;
cmd.Parameters.Add("@level",SqlDbType.SmallInt).Value=1;
//stringpassword=System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(TextBox2.Text.Trim(),"MD5");
stringorgin=TextBox2.Text.Trim();
stringpassword=Mdfive.Encrypt(orgin);
cmd.CommandText="insertintonews2(UserName,password,level)values('"+TextBox1.Text+"','"+password+"','1');";
count=(int)cmd.ExecuteNonQuery();
if(count==0)
{
Response.Redirect("alert('注册失败');");
}
else
{
Response.Write("alert('注册成功');location='dl.aspx'");
}
}
else
{
Response.Write("alert('用户名重复');");
}
conn.Close();
}
}
}
welcome.aspx
publicpartialclasswelcome:
System.Web.UI.Page
{
protectedvoidPage_Load(objectsender,EventArgse)
{
if(Session["UserName"]==null)
{Response.Redirect("dl.aspx");}
else
{
Label1.Text=Session["UserName"].ToString();
}
}
protectedvoidButton1_Click(objectsender,EventArgse)
{
Response.Redirect("yhedit.aspx");
}
protectedvoidButton2_Click(objectsender,EventArgse)
{
Response.Redirect("dl.aspx");
}
protectedvoidButton4_Click(objectsender,EventArgse)
{
Response.Redirect("pdedit.aspx");
}
}
yhedit.aspx
publicpartialclassyhedit:
System.Web.UI.Page
{
protectedvoidPage_Load(objectsender,EventArgse)
{
if(Session["UserName"]==null)
{Response.Redirect("dl.aspx");}
else
{
Label1.Text=Session["UserName"].ToString();
Session["UserName"]=Label1.Text;
}
}
protectedvoidButton1_Click(objectsender,EventArgse)
{
Response.Redirect("dl.aspx");
}
protectedvoidButton2_Click(objectsender,EventArgse)
{
Response.Redirect("welcome.aspx");
}
}
glyedit.aspx
publicpartialclassedit:
System.Web.UI.Page
{
protectedvoidPage_Load(objectsender,EventArgse)
{
if(Session["UserName"]==null)
{
Response.Redirect("dl.aspx");
}
}
protectedvoidButton1_Click(obj