密码管理与存储系统(共34页).doc
精选优质文档-倾情为你奉上目 录第一章 引 言 11.1项目开发背景 11.2 项目开发的目的及意义 11.3 系统的开发方法 2第二章 系统分析 32.1可行性分析 32.2 需求分析 3第三章 系统的主要技术分析 53.1 ASP技术 53.1.1.ASP访问数据库的原理53.1.2 ASP内部6大对象 53.2 IIS与ASP的结合 73.3 利用ADO访问数据库的原理 7第四章 SQL Server 2000 实现关系型数据库 84.1 数据库的概念 84.2 数据库的功能 84.3 新建一个数据库 84.4 数据库的设计 94.5 实现数据库之间的联系 104.6 数据库的连接方法 10第五章 密码管理与存储系统分析115.1 系统概论 115.2系统的功能设计 115.2.1系统的功能结构 125.2.2系统的功能特点 12第六章 系统功能模块的实现 146.1 系统的具体实现 146.1.1界面简单布置 146.1.2登录模块功能实现 146.1.3注册模块实现 156.1.4用户中心界面16系统测试及问题分析 18主要参考文献 19论 文 摘 要随着计算机信息的发展,计算机越来越成为人们工作、学习的好工具。在繁杂的信息时代中,用户们会有冗杂的信息需要记忆,于是密码管理与存储系统应运而生。本文通过对密码管理与存储系统的功能、作用的详细介绍,阐述了密码管理与存储系统在用户生活中起到的至关重要的作用,以及该系统带给互联网用户的便利。文章开头的需求分析、可行性分析充分表明了该系统开发的必要性和可行性。在系统功能方面,文中对该系统的功能和功能的开发方法、步骤做出了详细说明。本系统实现了用户名、密码等注册信息的快捷管理与存储,为用户在各个门户网站登录、取得相应的权限提供了有效的服务。关键词:注册信息 可行性分析 需求分析 密码存储与管理系统刘磊(开封大学软件学院) 一、第一章 引言 (一)项目开发背景在这个信息爆炸的时代,各种信息都在飞速的发展,人类通过电脑来完成工作的效率日益提高,同时PC、Internet也逐渐走进了千家万户。在这个信息的时代,我们要做的就是充分发挥人类的聪明才智,利用高科技快捷、精确的完成我们人类不易完成的工作。网络越来越多的挤入人们的日常生活。家庭的水电煤气可以通过网络缴费;人们可以随意在网上订餐;网上购物更是深受广大青少年的喜爱。那么我们在网上冲浪的时候,在各大网上注册的信息,是否点击了注册按钮之后就忘到了九霄云外呢?或者是否常常输入甲网站的用户名+乙网站的用户密码呢?还有我们喜欢的网址,怎么安全而又保密的存储起来呢?这些繁多杂乱的注册信息是否常常令你头疼呢?为了把各个网站注册的密码、信息,自己喜欢的网站准确的存储起来,实现简单快捷的管理,这个密码管理与存储系统应运而生。 (二)项目开发的目的 为了实现对用户在各大网站注册的密码(个人信息)进行方便快捷有效的管理。众所周知,用户名和密码是登陆网站的重要信息,如今各大门户网站如雨后春笋,网民在网上冲浪时,需要注册才能登陆。所以,繁多杂乱的用户名和密码挑战着网民的记忆能力。如果登陆一次就要注册一次更是令网民头疼。所以,开发一个管理存储用户名和密码的系统就显得尤为重要。 (三)项目提出的意义如今互联网已经渗透进入万家各户,网络理所当然与人们的衣食住行有了脱不开的关系。如何是网民更加快捷方便的利用网络完成自己的工作,如何使企业更加迅速的盈利,成为了至关重要的讨论话题。密码管理与存储系统,可以为用户提供友好的管理界面,快捷的管理功能,方便、准确的记录网站用户名与密码,以及各种有效的个人信息。对于网民个人而言,使网民的冲浪之旅更加方便快捷;对于企业,使与网络注册相关的信息更加井井有条,省时省事,提高了企业的工作效率。 (四)系统开发的方法本系统利用ASP、IIS技术,数据库服务器端采用了SQL Server 2000数据库作为数据源,并以先进的断开式连接技术进行数据库存取等操作,使Web与数据库紧密联系起来。实现了系统的动态管理。系统可以在Windows 2000 Server、xp等操作系统平台上运行,Web服务器为IIS,数据库服务器为SQL Server 2000数据库,开发工具采用的Microsoft Visual Studio 2008和MX DreamWeaver8。 二、 第二章 系统分析 (一)可行性分析可行性分析(Feasibility Analysis)也称为可行性研究,是在系统调查的基础上,针对新系统的开发是否具备必要性和可能性,对新系统的开发从技术、经济、社会的方面进行分析和研究,以避免投资失误,保证新系统的开发成功。可行性研究的目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决。该系统的可行性分析包括以下几个方面的内容。 1. 经济可行性主要是对项目的经济效益进行评价,本系统开发经费对于本单位在经济上是可以接受的,并且本系统实施后可以显著提高工作效率,有助于学院完全实现信息化管理。所以本系统在经济上是可行的。 2. 技术可行性技术上的可行性分析主要分析技术条件能否顺利完成开发工作,硬、软件能否满足开发者的需要等。该管理系统采用了当前新兴的Browser/Server模式进行开发。三层的Browser/Server体系结构具有许多传统Client/Server体系结构不具备的优点,而且又紧密的结合了Internet/Intranet技术,是技术发展的大势所趋,它把应用系统带入了一个崭新的发展时代。数据库服务器选用SQL Server 2000数据库,它能够处理大量数据,同时保持数据的完整性并提供许多高级管理功能。它的灵活性、安全性和易用性为数据库编程提供了良好的条件。因此,系统的软件开发平台已成熟可行。硬件方面,科技飞速发展的今天,硬件更新的速度越来越快,容量越来越大,可靠性越来越高,价格越来越低,其硬件平台完全能满足此系统的需要。3. 时机可行性目前,网络已经遍布全球,人们与人们之间的竞争日趋激烈,人们与人们之间的竞争已经上到一个新的高度,那就是信息化战争。最新的信息就是最好的竞争手段的实力,密码管理与存储系统就如同为企业、个人的各种信息搭建了一个管理平台,通过它可以有效的进行网站的登陆。当前,中国企业面对诸多的机遇和挑战,许多企业都在探索改善企业整体绩效、提高企业竞争力的有效方法。因此建立一个密码管理与存储系统是势在必行的。综上所述,此系统开发目标已明确,在技术和经济等方面都可行,并且投入少、见效快。因此系统的开发是完全可行的。 (二)需求分析在可行性分析阶段已经粗略的研究了该项目的需求,并分析了开发平台及软件的可行性,但为了准确的确定目标系统必须做什么,了解用户的明确需求,在相关部门进行了详细的调研, 进一步明确了作者所实现子系统的功能。 三、第三章 系统的主要技术分析 (一) ASP技术ASP是Active Server Page的缩写,意为“活动服务器网页”。ASP是微软公司开发的代替CGI脚本程序的一种应用,它可以与数据库和其它程序进行交互,是一种简单、方便的编程工具。ASP的网页文件的格式是.asp,现在常用于各种动态网站中。 ASP是一种服务器端脚本编写环境,可以用来创建和运行动态网页或web应用程序。ASP网页可以包含HTML标记、普通文本、脚本命令以及COM组件等。利用ASP可以向网页中添加交互式内容(如在线表单),也可以创建使用HTML网页作为用户界面的web应用程序。 与HTML相比,ASP网页具有以下特点: 1.利用ASP可以实现突破静态网页的一些功能限制,实现动态网页技术; 2.ASP文件是包含在HTML代码所组成的文件中的,易于修改和测试; 3.服务器上的ASP解释程序会在服务器端制定ASP程序,并将结果以HTML格式传送到客户端浏览器上,因此使用各种浏览器都可以正常浏览ASP所产生的网页; 4.ASP提供了一些内置对象,使用这些对象可以使服务器端脚本功能更强。例如可以从web浏览器中获取用户通过HTML表单提交的信息,并在脚本中对这些信息进行处理,然后向web浏览器发送信息; 5.ASP可以使用服务器端ActiveX组建来执行各种各样的任务,例如存取数据库、发现哦那个Email或访问文件系统等。 6.由于服务器是将ASP程序执行的结果以HTML格式传回客户端浏览器,因此使用者不会看到ASP所编写的原始程序代码,可放置ASP程序代码被窃取。(三) ASP访问数据库的原理 ASP是服务器端的脚本执行环境,可用来产生和执行动态的高性能的WEB服务器程序。 当用户使用浏览器请求ASP主页时,WEB服务器响应,调用ASP引擎来执行ASP文件,并解释其中的脚本语言(JScript 或VBScript),通过ODBC连接数据库,由数据库访问组件ADO(ActiveX Data Objects)完成数据库操作,最后ASP生成包含有数据查询结果的HTML主页返回用户端显示。(四) ASP内部6大对象 ASP提供了6个功能强大的内部对象,每个对象具有各自的属性(Property)、方法(Method),有的还拥有数据集合(Collection)与事件(Event),它们共同完成Web中的一些重要工作。这6个对象及其功能描述如下所示。 对象名象 功能描述 Request 从客户端取得信息 Response 将信息送给客户端 Server 提供一些Web服务器工具 Session 储存在一个Session内的用户信息,该信息仅可被该用户访问 Application 在一个ASP-Application中让不同的客户端共享信息 ObjectContext 配合Microsoft Transaction服务器进行分布式事务处理 合理地运用这些对象可以使原本复杂,烦琐的工作变得简捷而条理清晰。我们可以用以下的语法直接使用这些对象:对象/属性/方法/数据集合Global 文件,每一个以Active Server Pages为基础的应用程序都拥有一个Global.asa文件(ASA后缀名其实是Active Server Application的缩写),它位于每一个应用程序的基点目录之下。当Active Server Pages做下面两个动作时,Server便会去读Global.asa文件: 1.Web Server启动之后,一个应用程序目录中任一个ASP文件被提出第一个HTTP请求(Request)时。 2.不具有任何Session的客户端向Server请求一个ASP文件时。前面已经提到Application和Session这两个ASP的内部对象。Application对象内的信息供所有正在执行该应用程序的用户分享,它创建于Web Server启动后一个应用程序中任一ASP文件被提出第一个HTTP请求时,结束于Server端停止运行。而Session对象仅属于一位用户,维持一个用户端的信息,其他用户无法访问,它创建于一个不具有Session的用户向Server请求一个ASP文件时,结束于该Session到期(即用户端超过某时间段没有向Server提出要求或刷新Web页面)或Abandon语句的调用。可见,Global.asa文件的调用与Application与Session这两个对象密切相关。事实上我们通常在Global。asa文件中写入以下内容: Application或Session的开始事件(Start-event)。 Application或Session的结束事件 (End-event)。 这样,在一个Application或Session对象被创建或结束时,系统会自动完成Global.asa文件中写入的相应事件。值得注意的是,如果一个Application与一个Session同时开始,Active Server Pages会先处理Application的开始事件,而如果一个Application与一个Session同时结束,Active Server Pages则会先处理Session的结束事件。 (五)IIS与ASP的结合 在过去,客户机/服务器结构的设计与Web的相关技术几乎处于平行线上,两者相互独立并无法作出集成性的设计。现在我们利用IIS+ASP构成三层式Web结构(如图2.1所示)的中间一层,将客户机/服务器结构与Web密切结合,完成前后端两者的集成输出功能,使得Web站点的开发更方便,实现的功能更强大。 利用IIS+ASP技术来集成Web前后端所带来的强大效益可归结为以下几个方面: 1.减少构建和维护成本 2.加快联机过程 3.应用软件集中在服务器端开发管理 4.前端可使用任何浏览器(IE、Netscape.) 5.后端可存取任何数据库 (SQL、Access.) 6.可使用任何脚本语言开发 (VBScript、java script、PERL.)(六)利用ADO访问数据库的原理 与数据库相连,ADO提供了如下3种方式:通过ODBC相连;通过OLEDB相连;直接与Microsoft Access数据库相连。3种方式由于应用层次的差异,使得效率由低到高,独立性由高到低。对于相连数据库的数据处理,也有2种方式,即一种是通过DataSet来隔离异构的数据源,另一种是以流方式从数据源读取(DataReader方式)。传统的应用程序是通过先建立到数据库的连接,在程序的整个运行过程中维护连接的方式来设计的。ASP采取了断开连接方式的数据结构。当浏览器向Web服务器请求网页时,服务器处理这个请求,并将所请求的网页发送给浏览器,然后连接就被断开,直到浏览器发出下一个请求。ADO的另一个创新是引入了数据集(Dataset)。一个数据集是内存中提供数据关系图的高速缓冲区。数据集对数据源一无所知,它们可以由程序或通过从数据仓库中调入数据而被生成、填充。不论数据从何处获取,数据集都是通过使用同样的程序模板而被操作的,并且它使用相同的潜在的数据缓冲区。 四、第四章 SQL Server 2000数据库 (一)、数据库的概念 SQL Server 是一个关系数据库管理系统,它最初是由Microsoft Sybase 和Ashton-Tate三家公司共同开发的,于1988 年推出了第一个OS/2 版本。在Windows NT 推出后,Microsoft与Sybase 在SQL Server 的开发上就分道扬镳了。Microsoft 将SQL Server 移植到Windows NT系统上,专注于开发推广SQL Server 的Windows NT 版本;Sybase 则较专注于SQL Server在UNIX 操作系统上的应用。SQL Server 2000 关系数据库引擎支持当今苛刻的数据处理环境所需的功能。数据库引擎充分保护数据完整性,同时将管理上千个并发修改数据库的用户的开销减到最小。SQL Server 2000 分布式查询使您得以引用来自不同数据源的数据,就好象这些数据是 SQL Server 2000 数据库的一部分,同时分布式事务支持充分保护任何分布式数据更新的完整性。复制同样使您得以维护多个数据复本,同时确保单独的数据复本保持同步。可将一组 数据复制到多个移动的脱接用户,使这些用户自主地工作,然后将他们所做的修改合并回发布服务器。 (二)数据库的功能 可以根据需要定制SQL Server 2000数据库系统,对数据进行保存,查阅和计算。利用存储表相应的信息,为每一种实际对象的信息创建一个表,在表中对不同数据以不同的方式进行储存。 1.可以检索用户指定条件的数据,创建相应的查询来进行检索,也可以利用查询来更新或删除记录,并对表中的数据执行各种计算。 2.可以直接输入、查看或更改数据库中的数据,利用表格或创建一定的窗体来完成上述功能。 3.可以对数据库中的数据进行分析,或者通过指定的方式将数据打印出来,统制一份相应要求的报表。 4.可以利用宏或编码方便地将各种数据库对象连接在一起,形成一个数据库应用系统。 5.可以将数据库中的数据传输到其他数据库的服务器上,实现资源共享,通过此项功能来制作数据访问页。 (三)新建一个数据库 创建任何一个数据库的第一步是仔细的规划数据库,设计必须是灵活的、有逻辑的。创建一个数据库结构的过程被认为是数据模型设计。1. 打开或新建一个数据库 2. 建立一个新数据表 3. 在数据表的设计视图中输入字段的字段名,数据类型和说明 4. 确定每一个字段的属性5. 设置数据表中的主关键字 6. 为某些字段建立索引7. 保存文件 (四)数据库的设计用户的管理:包括合法系统用户的注册,登录,退出等功能。.设计要求是: 1.用户表:存储用户的用户名与密码,实现该系统的正常登录功能。 2.密码表:存储已注册用户的用户名、账号、密码、相关网址、标题等字段。 3.E-mail表:存储已注册用户的E-mail账号,密码,密保信息。 4.软件注册码表:存储已注册用户的软件名称、软件版本号、软件注册名、注册名、软件网址。 5.管理员用户表:存储管理员用户的用户名与密码,实现管理员的正常登录功能。 图1.1 E-R图图1.2 E-R图C_user表IDUsernamePasswordstaticRealnamePhoneQQagesex1Liulei0刘磊21男2Aaa1230张三12女 C_admin表IDA_usernameA_password1Amdinadmin2BBBC_email表IDU_idEmailPasswordQuestionanswer12你的名字李四22你的第一所小学中心小学C_password表IDU_idTitleUsernamepasswordZhanghaonetaddress13开机密码AdministorAmdin123空空23优酷用户Youku321Youku321C_software表IDU_idSoftwarenameRegisternameRegisternumberSofteditionnetaddress13Office2011微软办公套件2BE23-23FSG-4DFET-EEWG5V 2.4.10923VMware虚拟机VMware2BE23-23FSG-4DFET-EEWG54.23E.123图1.2 用户表属性图图1.3 Email表属性图图1.4 password表属性图图1.5 software表属性图图1.6 管理员表属性图 (五)实现数据库之间的联系 数据库之间的关系指明两个库之间共享一个共同的关键字值。一个连接是指一种虚拟的表,这种表是在当用户要求从相互关联的各个不同的表中获取信息时建立的,关键字段用于在相互连接的不同表中查找匹配的记录。一个更高级的连接形式称为自连接。这种连接是指一个表被连接到它自己的一个字段,或在不同的纪录中由重复数据的组合字段。数据库中有三种不同类型的关键字:主关键字、组合关键字和外关键字。在表中使用的关键字类型用于描述库表示什么以及在数据库中如何与其它的库建立关系。在本系统的数据结构中,Email表、password表、software表和C_user表共享一个关键子值U_id,假如某用户ID为2,他所存储的Email资料的U_id会在添加数据的时候通过取到Session"id"中的用户id来区分是哪个用户存储的email资料,其他的几个表类同。在读取数据的时候,也是同样通过此字段来标识不同的用户所存储的资料。 (六)数据库的连接方法 SQL Server 2000数据库的连接方法: 把连接字符串:server=localhost;database=所要连接的数据库名;uid=sa;(登录身份为windows混合认证身份)pwd=(密码为空)存储在Web.config文件中,在每次连接数据库的时候,使用下列代码(登录按钮的代码)String constrr = ConfigurationManager.ConnectionStrings"mydata".ConnectionString;SqlConnection conn = new SqlConnection(constrr);string sql = string.Format("select * from C_user where username='0'and password='1'", username, password);SqlCommand command = new SqlCommand(sql, conn); SqlCommand command = new SqlCommand(sql, conn); using (conn) conn.Open(); using (SqlDataReader reader = command.ExecuteReader() if (reader.Read() if (reader"stutas".ToString() = "0") Response.Write("<script>alert('该用户已被禁用!')</script>"); else Session"username" = username; Session"id" = Convert.ToInt32(reader"id"); Response.Write("<script>alert('登录成功!');window.location.href='users.aspx'</script>"); else if (TextBox1.Text = "") Response.Write("<script>alert('请输入用户名!');window.location.href='index.aspx'</script>"); else Response.Write("<script>alert('用户名或密码错误!')window.location.href='index.aspx'</script>"); 例如此类登录、注册代码比较常用,所以可以写成一个公共类封装起来,用到时直接调用。 五、第五章 密码存储与管理系统分析 (一) 系统概论 1.系统目标:使用户更加方便快捷的登陆已注册过得网站,直接管理已注册的信息。可以为用户减少记忆各个网站用户名和密码的压力。 2. 系统功能简介:该系统具有用户登陆、用户注册、用户信息修改、用户密码修改、信息查看、信息删除、添加信息、修改信息、管理员登录、管理员设置普通用户权限、管理员删除用户等功能。 (二)系统的功能设计1.用户登陆:取出textbox中用户输入的字符串(用户名和密码)与本地数据库C_user表中的用户名和密码对比,如果有相同的,就提示登陆成功并转向控制面板页面,如果没有,则提示登录失败并停留在登陆页面。2.用户注册:在注册页面的文本框输入内容后,把用户输入的字符串通过SQL语句命令添加到数据库表中。 string username = TextBox1.Text; string password = TextBox3.Text; string realname = TextBox4.Text; string age = TextBox6.Text; string sex = RadioButtonList1.SelectedValue.ToString(); string phone = TextBox8.Text; string QQ = TextBox7.Text; string email = TextBox9.Text; if (!CheckBox1.Checked) Response.Write("<script>alert('您还没有同意本网站的条款');window.location.href('register.aspx');</script>"); string connstr = ConfigurationManager.ConnectionStrings"mydata".ConnectionString; SqlConnection conn = new SqlConnection(connstr); string sql = string.Format("insert into C_user(username,password,realname,sex,age,QQ,phone,email)values('0','1','2','3','4','5','6','7')", username, password, realname, age, sex, QQ, phone, email); SqlCommand command = new SqlCommand(sql, conn); using (conn) conn.Open(); command.ExecuteNonQuery(); Response.Write("<script>alert('恭喜您,注册成功!');window.location.href('tiaozhuan.aspx')</script>"); 3. 用户信息修改:update 语句Update C_user set(username=aaa) where id=2;4. 密码修改:update 语句Update C_user set(username=aaa) where id=2;5.信息查看:select 语句。把表中符合要求的信息显示出来String sql=string.format("Select * from C_user where id='0',id");6.信息删除:delete 语句。Delete from C_user where id=1;7.添加信息:insert inot 语句 string id=Convert.ToString(Session"id"); string email=TextBox1.Text; string password=TextBox2.Text; string question=TextBox3.Text; string answer=TextBox4.Text; string connstr = ConfigurationManager.ConnectionStrings"mydata".ConnectionString; SqlConnection conn = new SqlConnection(connstr); string sql = string.Format("insert into C_email(U_id,email,password,question,answer) values('" + id + "','" + email + "','" + password + "','" + question + "','" + answer + "')"); SqlCommand command = new SqlCommand(sql, conn); using (conn) conn.Open(); command.ExecuteNonQuery(); Response.Write("<script>alert('保存成功');window.location.href='add_Email.aspx'</script>"); 8. 修改信息:update 语句Update C_user set(username=aaa) where id=2;9. 管理员登陆:select语句同上。 (三)系统的功能结构系统可以在Windows 2000 Server、xp等操作系统平台上运行,Web服务器为IIS,数据库服务器为SQL Server 2000数据库,开发工具采用的Microsoft Visual Studio 2008和MX DreamWeaver8。 未注册用户可以在注册页面注册 已注册用户可以直接登录系统,进行信息管理 已注册用户可以添加、删除、修改用户的信息 管理员可以对已注册的用户进行禁用、重新启用、删除等操作 用户可以修改自己的注册信息,如果email、密码、电话号码等 (四)系统的功能特点 1.操作简单、界面简洁:完全控件式的页面布局div+css 2.即时可见:存储的信息即时就能显示出来。 3.需要注册才能进行使用。 4.系统界面采用了母板的形式进行结构上的布置,使用户感到方便、直观。 图1.7 系统功能结构图 六、第六章 系统功能模块的实现 (一)界面简单布置界面采用母板Master.master布置,简洁、直接,用户很容易使用系统的各项功能图1.8 母板界面1图1.8 母板界面2 (二)登录模块的实现 protected void ImageButton1_Click(object sender, ImageClickEventArgs e) string username = Te