动态口令认证机制的网上投票系统设计与实现.docx

上传人:b****6 文档编号:7235435 上传时间:2023-01-22 格式:DOCX 页数:25 大小:1,003.37KB
下载 相关 举报
动态口令认证机制的网上投票系统设计与实现.docx_第1页
第1页 / 共25页
动态口令认证机制的网上投票系统设计与实现.docx_第2页
第2页 / 共25页
动态口令认证机制的网上投票系统设计与实现.docx_第3页
第3页 / 共25页
动态口令认证机制的网上投票系统设计与实现.docx_第4页
第4页 / 共25页
动态口令认证机制的网上投票系统设计与实现.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

动态口令认证机制的网上投票系统设计与实现.docx

《动态口令认证机制的网上投票系统设计与实现.docx》由会员分享,可在线阅读,更多相关《动态口令认证机制的网上投票系统设计与实现.docx(25页珍藏版)》请在冰豆网上搜索。

动态口令认证机制的网上投票系统设计与实现.docx

动态口令认证机制的网上投票系统设计与实现

摘要

现代社会,随着互联网技术的不断发展,人们开始把互联网应用于生活的方方面面。

传统的投票方式已经不能适应当今快节奏的社会生活,所以网上投票系统越来越受到大家的青睐,它具有时效性强,适用范围广泛等诸多优点,更适合于社会发展和人们生活的需要。

时至今日,有许多网站都采用网上投票的方式来加深客户和商家之间的交流。

本课题主要通过对投票系统的国内外发展形势和研究现状的调查,对开发过程中使用的JSP技术、动态口令认证技术、管理数据使用的MySQL等相关技术进行了介绍,研究开发出基于WEB技术的新型网上投票系统。

与传统的投票方式相比,本系统添加了动态口令来保证了用户登录的唯一性和系统的安全性,实现了用户的在线投票、查看投票结果、管理员对投票的增删改等功能。

关键词:

投票系统JSP技术动态口令SQL技术

Abstract

Inmodernsociety,withthecontinuousdevelopmentofInternettechnology,peoplebegintousetheInternetinallaspectsofourlife.Traditionalwayofvotingcannolongeradapttotoday'sfast-speedsociallife,soonlinevotingsystemisbecomingmoreandmorepopular.Ithasmanyadvantages,suchasstrongtimelinessandwiderangeofapplication,anditismoresuitableforsocialdevelopmentandpeople'slifeneeds.Nowadays,manywebsitesuseonlinevotingtodeepenthecommunicationbetweencustomersandmerchants.Thistopicmainlythroughthesurveyofthedevelopmentsituationandresearchstatusofthevotingsystemathomeandabroad,introducedtheJSPtechnology,dynamicpasswordauthenticationtechnology,MySQLandotherrelatedtechnologiesusedinthedevelopmentprocess,anddevelopedanewonlinevotingsystembasedonWEBtechnology.Comparedwiththetraditionalwayofvoting,thissystemaddsdynamicpasswordtoensuretheuniquenessofuserloginandsystemsecurity,andrealizesthefunctionsofonlinevoting,viewingvotingresultsandadding,deletingandchangingvotingbytheadministrator.

Keywords:

Votingsystem;JSPtechnology;Dynamicpassword;SQLtechnology

第1章绪论

1.1研究的意义

当今社会是网络信息的社会,计算机、互联网的发展和应用在社会生活的方方面面都有着极其深远的影响,如工业的发展,企业核心竞争力的提高。

随着社会的不断发展,计算机在人类的劳动过程中占据着越来越重要的地位。

在这样的环境下,加强自身的信息化建设,通过互联网技术掌握最新的信息,用以加速自身的发展显得尤为重要[2]。

以网络为工具,我们可以掌握周边、全国甚至是全世界的市场信息。

网络技术的高速发展,使得人与人之间的信息交流更加频繁,如何提高调查的效率成为人们和企业关注的重点。

对于一些企业公司来说,对社会上产生的新观点、新产品进行全面的、系统的调查是必不可少的,在各方面要求的推动下,网上投票系统越来越受到人们尤其是企业的欢迎。

传统的投票方式主要以问卷调查为主,在投票的组织,选票的收集与统计方面要花费大量的人力,物力和时间,效率十分低下,调查范围也十分狭小,而且容易受到人为因素的干扰,对结果产生不利影响。

综上所述,传统的问卷调查方法已经跟不上网络信息社会快节奏的生活,满足不了企业对信息获取效率的需求。

目前,网上投票系统的应用已经越来越广泛,如民主选举、学校的各类评选活动等场合都能见到网上投票系统的存在。

通过网上投票系统,人们再也不用局限于在某时某地进行投票,降低了某些人为因素对投票的影响。

在投票过程中,采用互联网投票,由计算机对投票的结果进行统计,节省了大量的资源,提高了调查的效率,扩大了调查的社会范围,使得投票结果具有更高的准确性和参考价值。

最重要的是,它最大限度的将人为因素的影响降到最低,从而使投票活动达到公平、公正的效果。

然而,网络的日新月异的变化极大地促进了黑客技术的发展和成熟,使得网络技术存在巨大的安全隐患。

一项网络技术的安全与否,直接关系到这项技术的成败。

而本次课题采用了动态口令认证机制,利用短信验证码的形式,保证了用户登录的安全性和投票信息的保密性。

所以,如何设计出高效安全的网上投票系统变得至关重要。

本次课题的目的是研究开发出具有动态口令认证机制的网上投票系统,这一投票系统能够实现以下功能:

(1)利用动态口令,即短信验证码,保证用户登录和系统的安全性;

(2)在管理方面,能够实现用户在线投票,对投票的增删改查等功能;(3)对投票结果进行统计。

 

1.2国内外研究现状

在网络的长期发展过程中,国外的工作者对电子投票和在线投票做出了大量的研究和实践工作。

1884年,ThomasEdison研究出一种可以应用于电子投票的装置,想要把它卖给美国Massachusetts市的立法机关,但是由于当时电子投票装置并未为民众所熟知,手工方式投票依然是主流的投票手段,所以没有成功,直到计算机的出现,人们才开始将电子投票应用于实践生活中[1]。

1952年,哥伦比亚广播公司尝试使用计算机对投票结果进行预测[1]。

1992年,美国在一次重要的大会上首次采用触摸屏进行投票并首次使用计算机对投票结果进行统计[1]。

截止至2001年,巴西已经在全国范围内实行了使用电子投票装置进行民主选举[1]。

但是,电子投票依然有其局限性,虽然它实现了利用计算机对投票结果进行简单的管理,但是在投票时,要求投票者必须在场,这局限了投票活动的广泛性和灵活性。

真正将Internet应用于投票活动实践的例子凤毛麟角。

而且,网络的日新月异的变化极大地促进了黑客技术的发展和成熟,这就导致了网上投票系统可能会因为黑客的攻击,使得投票结果出现误差,从而使投票失去公平的原则[1]。

综上所述,要想设计出安全高效的网上投票系统,还需要经过大量的尝试和长期的实践摸索。

国内的学者对投票系统也进行了长期的研究和探索。

有学者采用PHP技术实现用户客户端交互以及与已有网站的用户认证接口,根据MVC分层理念,将PHP编程语言与MySQL数据库技术有机的结合起来,经过需求分析、系统设计、系统实现等面向对象的软件开发流程,实现了具有用户注册、登录、跨平台认证、投票及后台管理统计等功能的在线投票系统[4]。

有学者主要针对投票过程中投票的有效性和安全性问题,利用Java语言,开发出一种网上投票系统模型[5]。

有学者利用ASP技术和SQL技术,将其应用于一个校园投票系统,并在学校评选活动中得以成功应用[6]。

有学者将投票系统分成前台和后台两个部分,前台主要负责为用户提供投票的服务,后台主要实现对用户和投票的管理,设计开发出一个基于ASP.NET+SQLserver2000的在线投票系统[7]。

通过查阅大量的文献和资料,投票方式的发展经历了从手机短信投票到纯网站的在线投票的转变过程[3]。

目前,国内外也存在一些小型的网上投票系统:

(1)PollDaddy:

通过比较我们可以发现PollDaddy具有以下优点,可以支持单选和多选两种模式,也可以通过限制IP来防止刷票现象的发生;在投票输出方面,它可以将投票加入到网站或blog中,通过对CSS的自定义来使投票与原网站完美融合[3]。

(2)BlogPoll:

从名称可以看出,这是一款以博客为平台进行投票的在线投票系统,使用时不需要注册账号,以JS的形式嵌到网站中[3]。

但它也存在局限性,如不支持多选且投票模式比较单一等[3]。

(3)Neomyz:

这是一款以flash技术为基础的在线投票网站[3],与其他投票软件不同的是,他借助柱状图和饼状图直观有效的反映出投票结果,但现在已经停用了。

(4)问卷星:

问卷星是国内一款比较主流的在线投票系统,广泛应用于学校的问卷调查中。

但是由于它是第三方机构,与已有网站的结合有一定的困难,同时他也不能防止刷票行为的出现,只适用于小规模的投票活动[3]。

1.3主要研究内容

本次课题针对投票过程中的安全性和投票结果的保密性问题,设计了基于动态口令认证机制的网上投票系统,实现了投票活动的公平公正。

本次课题研究的主要内容有:

通过查阅文献和社会调查,对投票系统的社会需求进行分析,在数据库,系统架构等方面对系统做出总体设计。

最后通过JSP和SQL技术完成对投票系统的开发与实现。

1.4论文的组织结构

本文的主要内容大致可以分为以下几个部分:

第1章:

绪论,目的是对在线投票系统的社会需求和技术发展有一个大概的了解,为课题的开发做好准备。

第2章:

主要对完成本次课题所涉及到的技术和环境做了一些简单的介绍

第3章:

对本次课题将要实现的功能模块做了简单的分析和概括

第4章:

基于第3章对系统的需求分析,把系统划分为几个功能模块,给出了系统的总体框架,并对每个模块的作用进行简单的介绍。

针对每个模块将要实现的功能,设计出相应的数据表。

第5章:

对系统每个模块的功能的具体实现在流程方面进行了详细的分析。

第6章:

对本次课题的总结,确定未来的改进方向。

第2章系统开发技术及环境

2.1开发技术简介

结合基于动态口令认证机制的网上投票系统的特点,我们选择Java语言、JSP技术+数据技术库技术来完成对系统的开发。

以SQL数据库为基础,进行JSP编程。

因此,开发所需要的环境以及需要用到的工具如下:

JSP(Java服务器页面)、JDK1.6、Eclipse(Java语言的开发软件)、MySQL(数据库软件)、Tomcat(Web容器)、Servlet等。

2.1.1JSP简介

JavaServerPages(Java服务器页面)即我们口中的JSP,是在SunMicrosystem公司发起,由多家公司参与开发的一种动态网页技术标准,是JavaWeb服务器端的动态资源。

JSP技术与ASP技术的相似之处在于它们都是在一般的网页HTML文件中进行操作,JSP技术通过在HTML文件中插入Java程序段和JSP标记,最后形成了JSP文件[10]。

JSP具有跨平台的技术特征,在许多操作系统都能够成功运行。

在开发过程中,JSP通过使用Java语言编写类XML的Java程序段和JSP标记,对动态页面进行封装,进而实现动态网页的处理逻辑。

JSP技术分离了网页的显示模块和网页逻辑,支持可重用的基于组件的设计,大大提高了程序开发的效率和灵活性[10]。

当Web服务器接收到用户请求的时候,服务器首先会处理其中的Java代码片段,然后将生成的处理结果和HTML页面一起返回给客户端,客户端的浏览器将呈现最终的页面效果。

受处理的Java程序段可以实现操作数据库、重新定向网页,以适应建立动态网页的功能需要[11]。

JavaServlet能够以一种可移植的方式,使Web服务器能提供动态的内容,处理用户的请求。

JSP和JavaServlet一样,在服务器端对客户请求进行处理,然后向客户端返回一个HTML文本,使用户能够通过浏览器进行浏览。

JavaServlet作为JSP的技术基础,在许多大型的Web程序的开发过程中与JSP技术相互配合,才能发挥出应有的作用。

总的来说,JSP几乎具备了Java的所有特点,如操作简单,完全的面向对象,具有平台无关性且安全可靠,主要应用于因特网等。

2.1.2MySQL简介

通过对比几个数据库软件的异同点,由于MySQL具有良好的可扩展性和较为开放的存储引擎,比较适合本次课题的开发工作。

我们采用MySQL系统数据存储的数据库管理系统。

MySQL是一个主要反映了系统中合格数据的关系,是当下最流行的开源软件之一,在Web网站的建设方面,它是最好的数据库应用软件之一[12]。

在投票系统中,MySQL主要是对小型的数据进行管理,将数据分别存储到不同的表中进行管理,提高了数据库本身的灵活性。

MySQLAB公司作为开发者对它的发展起到了至关重要的作用。

目前MySQL被广泛应用于互联网行业,它可以应用到许多软件配置上,体积小、速度快、总体拥有成本低,尤其是开放源码设一特点,使其成为当下最受欢迎的开源数据库[12]。

成为许多中小型网站、商业软件用户的后端数据库首选。

其中就包括了PHP和Apache。

数据库系统和Apache与PHP的结合,能组建极其优秀的开发环境,将极大地推动基于数据库的web网站的发展[12]。

MySQL数据库可以支持不同用户在同一时间段内进行对数据库的访问。

从数据库的应用特性方面看MySQL为多种编程语言如C、C++、Java、PHP等都开发出了API接口。

也能支持数据库在实现多个线程连接的情况下依然能完成对数据的管理工作。

CPU因此在效率方面获得了极大程度的提升,减少了数据库对数据的处理时间。

MySQL使用使用结构化查询语言对其进行约束,是访问数据库普遍适用的查询语言。

它的双授权政策,包括了商业和社区两版本。

总的来说它,具有两方面的功能:

为用户提供数据处理的信息;使客户利用数据库实现更多的功能如提高记录存储和查找的效率,支持多用户同时访问等。

同时,MySQL为用户提供了ODBC、JDBC(主要用于Java程序与数据库的连接)等连接途经。

2.1.3Tomcat技术

Tomcat是Apache公司下的一种重要的开发工具。

由于开发部队中有Sun公司的影子在里边,Tomcat在JSP规范和Servlet中的应用十分常见。

作为一个是和处理较小规模数据的应用服务器,Tomcat在中小型系统和用户吞吐量较少的网站中被使用。

鉴于Tomcat开放源代码、性能稳定的特性,许多Java的开发者都愿意选择它来开发和调试JSP程序。

在构建Java程序服务器的过程中,大部分Java服务器将Tomcat嵌入到自己的产品中来更好的实现产品的功能。

也许我们可以换一种说法解释,我们可以在一台机器上利用Apache服务器来处理HTML页面的访问。

可以这样认为,Tomcat是Apache的扩展。

但是Tomcat和Apache又有所一些细微区别,当你在机器上使用使用tomcat的时候,两者之间相互独立。

 

2.1.4动态口令技术

动态口令认证技术可以被看做是一种双因子认证技术,改进了传统的静态口令。

即用户只有拥有系统发送的token和token的启用方法,才能对系统进行访问。

由于系统的token处于不断的变化之中,所以系统能够实现“一次一密”。

动态口令再认证流程方面比静态令增加了一个认证因子。

在访问系统时,两者缺一不可,同时token的内容具有时效性,超过一定的时间将会失效,这使得攻击系统变得极其困难,保护了系统和用户登录的安全,在很大程度上解决了使用静态口令的风险。

时至今日,人们主要通过硬件令牌、短信密码、手机令牌、软件令牌四种方式来生成动态口令。

在本次课题的研究中,动态口令认证技术最直接的实现途径是设置短信验证码。

本次课题使用的短信验证码,实质上是系统通过下验证合格后才能进行后续的操作。

相对于人而言,如果访问者是一段攻击程序,向短信平台发送手机号码和验证码并将这些信息存储在session中,平台收到信息后将验证码发送到用户的手机,系统将用户输入的验证码与session中的信息相比较从而实现对用户身份的验证从而确保进入系统的是人而非机器。

2.2系统开发环境

2.2.1Eclipse

Eclipse是众多编程者常用的Java开发工具,同时也是一个可扩展的软件工具。

MyEclipse是在原先的基础上对Eclipse进行了改进,使其能够更方便的进行JavaEE项目的开发,与数据库的结合更加简单。

第3章系统需求分析

一个完善的系统设计离不开对系统的需求分析,详细的需求分析结果能够对后续的系统功能模块的设计起到指导作用,才能让系统符合大多数人的社会需要。

3.1系统的可行性分析

本次课题使用JSP编程语言与Java、MySQL相结合。

开发、运行系统所依赖的环境准备充分。

本次课题对于用户方面的要求仅限于通过浏览器进入网页进行投票,投票操作较为简单。

从操作方面看,本课题的主要操作包括用户进入系统进行在线投票,管理员对投票的主题实现操作,分工明确,易于实现。

3.2系统的功能性分析

通过对本课题用户的调查,本课题的功能型需求大致可以分为以下几个模块:

(1)用户的账号注册与验证登录;

(2)进入系统进行投票;(3)系统对投票的选项票数进行统计并展示;(4)admin对投票的管理。

综上所述,本次课题只包含了admin和user这两类用户角色。

User:

投票者是本次课题服务的主体部分。

他们可以通过注册、验证登录进入系统查看系统中已有的投票项目并进行投票活动。

投票信息通过服务器进入数据库进行统计,最后普通用户可以在投票结果页面查看各选项的票数柱形图。

Admin:

管理员也是通过注册、验证登录进入系统,对投票项目进行管理,包括对投票信息的增删改等操作。

3.2.1模块功能需求

通过对本次课题的整体把握,整个课题主要实现两方面的内容:

投票管理(负责投票信息的更新)和在线投票。

<1>注册、登录模块

这个模块主要完成用户注册以及登录任务。

用户通过注册账号和密码,将本人的信息存储在MySQL中。

在登录界面输入,账号密码都正确且通过验证,才算登录成功,否则登录失败,需要重新输入信息。

<2>投票模块

这一模块是为用户的在线投票服务,是本次课题最关键的功能。

用户成功进入系统以后,可以看到已有的投票项目。

用户可以选择其中一项,提交成功则视为完成了一次投票活动。

<3>投票结果统计模块

这个模块的目的是实现对投票结果(选项票数和得票率)的智能统计。

用户可以在投票后通过访问统计模块了解投票结果。

<4>投票主题和选项的管理模块

如果想要对投票信息进行管理、更新和维护,就必须以管理员的身份进行操作通过,以下为管理员的具体权限。

(1)添加投票:

管理员通过验证来到添加模块,通过填写投票主题、投票选项即可添加相应的投票选项并存储在数据库中。

(2)删除投票:

当某些投票项目超过投票时间或者使用价值已经不高时,管理员可以清除相应投票,从数据库中将该投票主题的数据彻底删除,以此来保证投票系统的整洁。

(3)修改投票信息:

通过这个子模块,管理员可以对某些投票主题的选项进行修改(数据库数据的修改同步进行)。

<5>防止用户重复投票

当用户点击首页信息自动跳转到用户投票界面时,系统收集投票用户的id和相应的投票id,与数据库投票结果反馈表中的相应列值进行比较。

若用户id和投票id同时存在于同一条记录中,则说明该用户已经投过票,返回该用户已投过票的提醒并直接跳转到投票结果统计页面。

若表中没有上述的记录,用户可以正常进行投票,系统向投票结果反馈表中添加一条新记录。

第4章系统的总体设计

通过对课题的比较全面的需求分析,我们可以大体上本次课题需要实现哪些模块,对本次课题的结构以图的形式进行总体的设计。

4.1总体设计

从逻辑角度对本次课题进行分析,系统主要实现两大功能:

用户投票功能和投票的增删改查功能。

管理员和普通用户都需要通过注册获取账号密码,以此作为登录系统的凭证。

在投票系统中,管理员实现对投票信息的维护和管理,主要在投票管理模块。

而普通用户则通过进入系统实现投票操作并查看投票结果。

本次课题的总体结构图如图4-1所示

图4-1系统的总体设计

4.2系统的用例设计

本课题旨在方便客户进行在线投票,主要有2个应用实例,包括普通用户和管理员。

两者在系统中相互独立,普通用户不能进入管理模块,只具有在线投票的权限,而管理员只拥有对投票信息(如投票的题目和选项)的操作权限,并没有在线投票的权利。

两种应用实例如图4-2。

图4-2系统的实例图

过程分析:

普通用户以账号密码和短信验证码的方式进入投票界面,选择感兴趣的投票主题,点击选项,完成投票活动。

在用户确定自己的选择后,系统会将用户的选择放入数据库并对数据库的信息进行实时更新,最后改变投票的结果。

之后,用户可以选择去到结果统计的界面查询投票结果。

管理员以账号密码和动态验证码的方式进入投票控制界面,可以在增删改3中操作中选择一项对投票主题进行改动。

在确认改动后,数据将被数据库保存并实时改变用户投票界面的投票信息,以完成管理员对投票信息的维护功能。

4.3系统数据库的设计

本次课题最根本的功能是使用户能够进行投票活动,一般在网页上进行即可,这就说明课题采用的数据库规模不宜过大。

如果使用Oracle等数据库也许会造成资源上不必要的浪费。

综上所述,我们选择了MySQL。

 

4.3.1实体项目的E-R图

通过对本次课题的深入了解,结合我们现在的需求,实体项目可以分为以下几类:

管理员:

包括管理员的账号、密码,其E-R图如图4-3

图4-3用户的E-R图

普通用户:

包括普通用户的账号、密码,其E-R图与上图类似。

投票信息:

主要包括投票题目、投票选项、投票结果,其E-R图如图4-4所示。

图4-4投票选项的E-R图

综合上述E-R图的描述,我们可以总结出本课题数据库的各实体间的关系图如图4-5(见下页)所示。

 

4.3.2数据库中表的设计

根据4.3.1中对数据库中实体项目的设计和各个实体之间的联系。

可以将本次课题数据表的设计分为以下几个部分:

用户信息、投票信息、投票结果。

(1)用户信息表

根据图4-3,我们可以创建一张用户信息表user,内容主要包括用户的id账号和登录密码。

表4-1用户信息表user

字段名称

数据类型

字段长度

字段说明

说明

id

int

8

用户的账号

不能为空

name

varchar

8

用户的姓名

不能为空

password

Varchar

10

用户的登录密码

不能为空

phone

int

11

用户的手机号码

不能为空

Sort

Bit

1

用户的分类

不能为空

图4-5实体间的联系

(2)根据图4-4的设计要求,需要创建一张投票信息表,用来存放投票信息,表中包括投票内容和选项。

表4-2投票信息表vote-info

字段名称

数据类型

字段长度

字段说明

说明

topic-id

自动编号

3

投票的主题id

不能为空

content

varchar

50

投票的题目

不能为空

one

varchar

30

选项一

不能为空

two

varc

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1