基于移动终端和二维码的系统登录技术研究毕业论文
2020-03-10 17:00:47
摘 要
随着网络技术的普及,人们的生活已经离不开网络了,而在各种软件应用中,少不了要进行个人账户的登录,这就涉及到了个人隐私的安全问题,研究并提出更安全可靠的登录方式成为了需要。本文针对这一问题,提出了基于二维码的登录方式,大致过程就是用户要在网站上进行用户登录操作时,网页上会根据Web服务端的信息生成一个二维码,用户通过移动端,如android手机等打开相应的应用程序进行扫码登录,从而达到快速安全的登录效果。本文将对这一过程的设计和实现进行详细的讲解,并给出相关代码,方便其他软件开发者对自己的软件安全性进行完善,将二维码登录技术快速的集成到已存在的系统中,减少相关投入,实现工业效益的最大化。
关键词:QRcode;Android;JavaEE
Abstract
With the popularization of network technologies, people’s lives cannot live without the Internet. In various software applications, it is indispensable to log in to personal accounts. This involves personal privacy security issues, and studies and proposes more secure and reliable. The login method became necessary. This article aims at this issue, and proposes a login method based on two-dimensional codes. The general process is that when a user wants to perform a user login operation on a website, a two-dimensional code is generated on the web page according to the information of the web server, and the user passes the mobile terminal, such as Android phone and other open the corresponding application for scan code login, so as to achieve fast and safe login results. This article will explain in detail the design and implementation of this process, and provide related code, to facilitate other software developers to improve their own software security, the two-dimensional code login technology is quickly integrated into the existing system , Reducing related investment and maximizing industrial benefits.
Key Words:QRcode;Android;JavaEE
目录
第1章 绪论 1
1.1 研究背景、目的和意义 1
1.2 课题研究内容 1
1.3 国内外研究现状 2
第2章 基于移动终端登录系统的整体设计 4
2.1 系统结构 4
2.2 系统主要功能的实现 5
2.2.1系统整体流程图 5
2.2.2 登录信息的传递 5
2.2.3 移动终端的登录 5
2.2.4 登录状态的转变 6
第3章 二维码技术分析 7
3.1 QR二维码概述 7
3.2 二维码开源框架——ZXing 8
第4章 移动端的设计方案 10
4.1 Android和IOS系统的比较 10
4.2 Android系统体系结构 10
4.2.1 应用程序层 11
4.2.2 应用框架层 11
4.2.3 系统运行库层 12
4.2.4 linux核心框架 12
4.3 移动端具体功能的实现 12
4.3.1 登录界面 12
4.3.2 注册界面 14
4.3.3 扫码界面 15
第5章 后台服务器的设计方案 18
5.1 后台开发语言的选择 18
5.2 J2EE的简介 18
5.3 后台服务器的具体设计思路 19
5.3.1 主页的设计 19
5.3.2 登录成功后的页面设计 21
5.3.3 响应Android客户端请求的Servlet 22
第6章 结论 24
参考文献 25
致谢 26
第1章 绪论
1.1 研究背景、目的和意义
当今时代是互联网 的时代,人们生活的各个方面都实现了互联网化,各个软件的使用都离不开注册和登录,这一过程的安全性将直接影响到客户对该软件的信任程度。与此同时,不难发现二维码在我们的生活中也是无处不在的,人们现在使用最多的支付方式无疑就是扫描二维码进行支付,这个过程快捷方便。除此之外,还可以发现现在很多信息都是隐藏在二维码中的,比如街上的宣传海报上都会有一个二维码,有的是扫描加群,有的是扫描转到一个网站,这样会为用户省去很多麻烦,不用手动输入网址,只需拿出手机扫描即可,虽然将文字直接识别并跳转到该网页很难,但是将文本转化成二维码后,再去识别里面的内容就变得很简单了。可以说二维码是个很好的中间件,通过对其编码、解码能够无差别进行信息传递。
在以前许多Web应用程序的登录都是采用输入账号和密码的方式,外加一个随机验证码来排除非人工的登录。可想而知,每次的登录都要输入账号和自己为了防止盗号而想出的各种复杂的密码,这样的登录方式给用户带来了诸多不便,而且安全性也得不到保障。在复杂的网络环境中,用户自身账户的安全性是排在第一位的。尤其是在现如今的大数据时代,一个用户的账号不仅仅包含了用户的个人基本资料,更多的还关联了用户的生活习惯,以及各个其他软件平台上的用户数据。如果被别有用心的人掌握了用户的数据,通过全方位的信息检索,可以将用户的全部个人信息查出,包括用户的个人经历都能摸的一清二楚。这样的现象在网络中时有发生,如人肉事件。现在在网络上发生严重冲突,可能会导致一方去“人肉”搜索另一方,“人肉”搜索的方法就是去查看他人各个网络账号的信息,现代人或多或少都会用QQ、微信、微博等社交软件,搜索一方就会通过各种手段盗取账号并查看个人资料,并从中得出线索进而顺藤摸瓜找到更多隐藏信息。“人肉”搜索是很恐怖的事情,不仅对当事人造成威胁,甚至连身边的人也会牵连进去。如此可见信息安全的重要性,这也是本论文的研究目的,通过一种安全可靠的方法,从用户登录系统的角度去确保用户的登录信息不会发生泄露,从一定程度上保障用户信息安全。
1.2 课题研究内容
现在先进的几种登录方式有手机短信或邮箱进行验证登录,用户在登录时输入账号,这个账号通常为绑定的手机号或者是电子邮箱,系统在进行账号验证,如果存在该账户则会给该账户绑定的手机号或者是邮箱发送一个随机字符的验证码,再由用户输入登录,尤其是通过绑定手机号的登录方式最为可靠。只要不存在手机被人盗取或者是手机短信被人监控的情况,手机短信验证登录的方式几乎可以完全的确定当前进行登录的就是用户本人。除了登录验证外,许多重要的操作如修改密码、确定异常登录等都是通过短信验证完成的。这也是当前许多登录方式中最为重要的一种,但是该方法对于服务商来说存在一定的成本,项目设计者一般会综合考虑使用。除了邮箱短信验证,另外一种现在常用的登录方式就是本文所说的扫描二维码进行登录的方式,本文提出了通过移动终端加上二维码的方式进行登录的方案,旨在为用户带来方便安全快捷的登录体验。
二维码技术早在上个世纪九十年代就已经产生了,但是近几年随着移动终端的迅速普及才开始用到这个技术。正如条形码一样,条形码在上世纪七十年代开始得到普遍使用,在各种商品和产品包装上随处可见条形码的身影,其原因是按照条形码这种生成和识别方式可以快速的通过计算机查到产品的关键信息,方便在生产和出售过程中的使用。二维码得以广泛应用的原因也是如此,二维码的编码方式是对外开放的,需要使用到二维码的开发人员可以根据其编码协议设计出二维码编码和解码的算法,然后加以实现。为了方便也可以使用现有的二维码生成和识别的开源框架,或对其进行二次开发。
在本文的设计方案中,二维码在Web服务器中进行生成,然后用户通过android手机进行二维码的扫描和解析,并进行相关登录信息的提交到服务器,再由服务器对数据库进行查询和更改事务,最后由浏览器的轮询机制捕捉到用户登录状态的改变,并进行浏览器页面的跳转。
本文将先后进行设计整体说明,对系统的结构以及验证过程进行阐述;分析二维码技术发展,以及本文用到的二维码开源框架ZXing;对比Android系统和IOS系统进行比较,对Android系统做大致的介绍,以及逐步介绍移动端功能的实现;对系统后台的功能和设计进行详细说明,介绍javaEE中servlet的用法,javaScript脚本的使用,jdbc的使用,以及数据库的设计和使用。
1.3 国内外研究现状
本设计的内容为基于移动终端和二维码的系统登录技术。其中二维码是整个系统的关键要素,联系Web系统和移动终端的枢纽是session id,而session id为字符串,以二维码为载体,此节着重介绍二维码在国内外的研究现状。
上世纪80年代末,美国、日本等国家的企业、研究机构开始进行二维码的研究,1989年美国国际资料公司发明了Data Matrix,原名为Data Code;PDF417码为1991年留美华人王寅敬(音)博士发明并由讯宝(Symbol)公司制定完成;1992年美国知名的UPS(United Parcel Service)快递公司推出了UPS码,即Maxicode二维码的前身。经过这些研究人员对二维码编码方式的不断研究,二维码的编码效率越来越高,后来为了二维码变得更加美观,一些二维码的研究者开始对黑白显示的二维码添加彩色元素,使得用户有良好的视觉体验。 二维码一经发布就得到了世界发达国家的重点关注,这些国家对这种新一代的存储信息的技术非常看重,并在后来对其进一步研究,将二维码技术应用在安全领域,如通过二维码完成对多种证件信息的采集;物流领域,如通过二维码对商品的信息进行识别,减少商品在过运输检查关卡的时间。
在二十世纪末,当国外二维码广泛应用起来的时候,中国研究者开始了对二维码技术的学习和研究,我国二维码的研究刚开始还是处于学习状态,通过对国外二维码各种编码方式相关文献的翻译和进一步分析的方式来进行研究。到后来二十一世纪初期,我国一些信息科技公司退出了自己版本的二维码编码规范,到2005年的时候,我国针对汉字编码,对二维码的编码规范进行调整使其适用于我国的汉字。除此之外,我国质量监督局还针对二维码提出了国家标准。
第2章 基于移动终端登录系统的整体设计
2.1 系统结构
二维码扫描登录系统的整体结构如图2.1所示,分为四个部分,即浏览器、Web系统、移动端登录软件、Web系统数据库[1]。
图2.1 基于移动终端登录系统的结构图
该图中,由于本设计针对的是Web系统,所以浏览器就是应用系统的客户端,而Web系统依托于Tomcat服务器存在,为用户提供设计好的服务,通过互联网进行信息传递,本文只针对其中的登录功能进行设计。图中的手机应用为用户登录时需要下载安装的应用,而数据库存储了用户的信息和登录相关的数据。
该系统的验证过程可以分为以下几步:
(1)用户打开计算器上的浏览器访问该Web系统,如果是第一次访问,Web系统还没有记下登录状态,则需要用户进行登录操作。Web系统会在网页上输出一个二维码图片供用户扫描。而二维码的内容则是本次会话的标识数据,在本设计中就是一个该Web系统的网址链接上本次访问的session id。
(2)当网站上出现二维码后,用户可以打开手机上进行登录的应用进行登录操作。该应用需要用户采用传统的账号密码进行登录,登录成功后才能使用扫描二维码的功能。该应用扫描二维码后会根据和Web系统协商好的数据格式对二维码中的数据进行解析,验证该二维码是否为本Web系统登录使用的二维码,若是,则将二维码中的session id包含在Web系统的登录请求中发送出去。
(3)Web系统中扫描二维码登录的网页会不断重复的给Web系统发送查询登录状态的请求,若移动端已经将登录请求发送成功,则当Web系统查询到该用户已经跳转都已登录状态,则页面会跳转为登录成功后的页面。
2.2 系统主要功能的实现
2.2.1系统整体流程图
分析上文系统进行的登录验证的过程,可以将整个系统的功能大致分为以下三个部分,即登录信息的传递、移动终端的登录、登录状态的转变。方案流程图如图2.2所示。
图2.2 方案整体流程图
2.2.2 登录信息的传递
在整个登录过程中,二维码的功能尤为重要,它使得登录信息能够存储其中并不能被其他系统所用。整个系统把二维码的生成和识别分为两个模块,二维码的生成在Web系统中完成,二维码的扫描在手机应用上完成。生成和扫描的二维码中的数据格式需要协商统一,才能正确的识别信息。
二维码作为信息传递的关键要素,其中存储了两种数据,一个则是登录所需的地址,用来验证是否为此系统生成的二维码,用以确定后续是否向系统发送登录请求。另外一个则是会话标识符,即Web系统中的session id,这一数据是整个系统中最为重要的数据,其能够让Web系统知道是哪个浏览器进行了登录操作,是将使用手机的用户和浏览器用户联系起来的关键数据。以上两种数据采用“,”进行链接。后续移动终端扫描到信息后也将按照此规则解析出登录地址和会话标识符,并验证登录地址后再向系统提交会话标识符,否则就终止登录过程。
2.2.3 移动终端的登录
用户在使用移动端的应用时,同样需要进行登录操作,可以看做是把Web端的登录转移到移动端的登录上,简化Web端的登录操作。用户在移动端登录成功后,来到个人信息的界面,并可以进行二维码扫描,扫描成功后根据信息将账户号以及会话标识符再提交到Web服务器上。
2.2.4 登录状态的转变
Web服务器接收到移动端发送来的账户号和会话标识符将查询数据库将会话标识符即session id保存到指定账户号对应的用户表记录中,并将该条记录中的登录状态转变为已登录状态。此时进行登录的网页将在后台不断地根据本地的session id查询数据库中是否有该session id,并判断其登录状态,若都符合则登录成功,页面进行跳转。除此之外,登录成功后还要设计一个用户注销的按钮,来注销数据库中的用户登录状态。
第3章 二维码技术分析
3.1 QR二维码概述
QR二维码又称快速响应矩阵码,是一种矩阵式二维码,它在二维方向上都存贮了信息[2]。QR二维码具有信息容量大、编码范围广、错误修正水平强、全方位识别、可加密等特点,这使得QR码在东亚以及欧美快速发展,直至目前QR码已经是二维码家族中最为流行的一员。QR码的基本结构如下图3.1所示:
图3.1 QR码基本结构图
(1)位置探测图形
如图中所看到的,二维码图案在左上方、右上方以及左下方都绘制了一个相同的图案,这个图案呈“回”字形,该图案的作用是用来确定二维码的位置,思考可知确定一个矩形的三个角落即可确定该图案的准确位置[3]。“回”字图案中外围的黑色边框其边长为7个单位,比其小一点的白色边框边长为5个单位,位于正中心的黑色正方形其边长为3个单位。这三者组成的“回”字图案因为是用于确定二维码位置的关键图案,所以其具有唯一性,在整个二维码图形中除了这三个角落外是找不到这种图案的。
(2)位置探测图形分隔符
通过图中可以看到,“回”字形图案的外围还有一圈白色的边框,这个白色边框起到了分隔作用,将位置探测图形和其他真正编码的地方进行划分。
(3)定位图形
图中有两条黑白相间组成的窄带,形成了一个类似坐标一样的横轴和纵轴。其作用就是坐标轴的作用,通过这一参考系来确定二维码图案中每个像素点的准确位置。
(4)校正图形
校正图形可看成由5x5大小的黑色模块、3x3白色模块及中间的一单位宽黑色模块组成的重叠同心正方形构成,数量随版本变化,版本越高数量越多。校正图形主要作用是对不规则的图形失真进行校正。
(5)编码区域
由于编码的过程中,存在编码格式以及编码版本等信息,此外还要对其进行编码纠错加入的纠错码字,真正编码的信息中会加入这些辅助信息,所以编码区域还由这多个部分组成,其中编码版本的选择将确定编码出来的数据大小。
(6)格式信息
格式信息的编码由两部分组成:第一部分为数据位,共有5位;第二部分为纠错位,共有10位。这两部分共同组成15位的格式信息编码。
(7)版本信息
版本信息涉及到编码出来的数据大小,是非常重要的数据,所以会出现在二维码的两个地方,以此提高冗余度。版本信息同样由数据位和纠错为两部分组成,各占6位和12位[4]。
(8)空白区域
顾名思义,整个二维码最外围的白色图案就为空白区域,其宽度有4个单位。
3.2 二维码开源框架——ZXing
ZXing是当前比较流行的一个关于一维码和二维码编码与解码的的开源框架,除了一些公司为了满足自己的产品需求会自己开发一个二维码框架外,大部分与二维码开发相关的程序都会使用ZXing框架。ZXing由谷歌公司发布,其内部的代码实现是JAVA语言,但是同时也提供了一些其他编程语言调用的接口,除此之外,针对解码操作,ZXing库中有一Android库提供了一个功能齐全的二维码生成和识别的例子。通过对该Android实例进行裁剪或修改后调用其主界面,可以调出手机相机扫描的界面并实现相机的扫码识别。使用ZXing框架时,需要导入其核心包,但是手动导包往往会出现缺少依赖包的问题,建议通过Maven来管理项目,通过配置依赖关系让Maven自动地到远程库下载。下载解压后得到ZXing的源码结构如图3.2所示:
以上是毕业论文大纲或资料介绍,该课题完整毕业论文、开题报告、任务书、程序设计、图纸设计等资料请添加微信获取,微信号:bysjorg。
相关图片展示: