基于DES算法的二维码扫描的实现毕业设计论文.docx

上传人:b****2 文档编号:1713727 上传时间:2023-05-01 格式:DOCX 页数:25 大小:523.45KB
下载 相关 举报
基于DES算法的二维码扫描的实现毕业设计论文.docx_第1页
第1页 / 共25页
基于DES算法的二维码扫描的实现毕业设计论文.docx_第2页
第2页 / 共25页
基于DES算法的二维码扫描的实现毕业设计论文.docx_第3页
第3页 / 共25页
基于DES算法的二维码扫描的实现毕业设计论文.docx_第4页
第4页 / 共25页
基于DES算法的二维码扫描的实现毕业设计论文.docx_第5页
第5页 / 共25页
基于DES算法的二维码扫描的实现毕业设计论文.docx_第6页
第6页 / 共25页
基于DES算法的二维码扫描的实现毕业设计论文.docx_第7页
第7页 / 共25页
基于DES算法的二维码扫描的实现毕业设计论文.docx_第8页
第8页 / 共25页
基于DES算法的二维码扫描的实现毕业设计论文.docx_第9页
第9页 / 共25页
基于DES算法的二维码扫描的实现毕业设计论文.docx_第10页
第10页 / 共25页
基于DES算法的二维码扫描的实现毕业设计论文.docx_第11页
第11页 / 共25页
基于DES算法的二维码扫描的实现毕业设计论文.docx_第12页
第12页 / 共25页
基于DES算法的二维码扫描的实现毕业设计论文.docx_第13页
第13页 / 共25页
基于DES算法的二维码扫描的实现毕业设计论文.docx_第14页
第14页 / 共25页
基于DES算法的二维码扫描的实现毕业设计论文.docx_第15页
第15页 / 共25页
基于DES算法的二维码扫描的实现毕业设计论文.docx_第16页
第16页 / 共25页
基于DES算法的二维码扫描的实现毕业设计论文.docx_第17页
第17页 / 共25页
基于DES算法的二维码扫描的实现毕业设计论文.docx_第18页
第18页 / 共25页
基于DES算法的二维码扫描的实现毕业设计论文.docx_第19页
第19页 / 共25页
基于DES算法的二维码扫描的实现毕业设计论文.docx_第20页
第20页 / 共25页
亲,该文档总共25页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

基于DES算法的二维码扫描的实现毕业设计论文.docx

《基于DES算法的二维码扫描的实现毕业设计论文.docx》由会员分享,可在线阅读,更多相关《基于DES算法的二维码扫描的实现毕业设计论文.docx(25页珍藏版)》请在冰点文库上搜索。

基于DES算法的二维码扫描的实现毕业设计论文.docx

基于DES算法的二维码扫描的实现毕业设计论文

基于DES算法的二维码扫描的实现

摘要:

随着手机Android系统的普及和信息化水平的提高,手机二维码扫描功能在我国已经为人们广泛的认识和接受,人们的生活和工作中对于二维码的运用也越来越频繁。

本文通过eclipse软件设计了一项依托于安卓手机系统之上,利用安卓手机的摄像功能和二维码编码与解码的原理,以及DES加密算法的相关知识,实现二维码生成、加密与识别、解密的系统。

该项设计内容包括三块:

二维码的生成、安卓系统二维码的扫描识别系统设计与数据的加密解密的实现。

二维码的生成系统完成了从数据输入、加密到生成相应二维码的功能,识别系统完成对采集到的二维码符号进行译码、解密并还原出所携带信息的功能。

关键词:

Android手机系统;二维码生成;二维码识别;DES加密解密

TheQRCodescanningSystemBasedonDES

JiangDongyang

Abstract:

AstheuniverseoftheAndroidmobilephonesystemandthedevelopmentoftheinformatizationlevel,theusingoftheQRCoderecognition’sfunctionismoreandmorefrequent.ThroughthisthesistheEclipsesoftwaredesignsasystemwhichenablestheQRCodegenerationandrecognitionsystem,onthebasisofandroidcamera,theprincipleofcodingandhandlingcode,andtherelevantknowledgeofDES.Thisdesigncoversthreeparts:

AndroidQRcodeencryptiondesign,QRcodeidentificationsystemdesign,andmobilephoneuserloginsystemdesign.GeneratingsystemfromthefunctionoftheinputdatatogeneratethecorrespondingQRcode,collectedinrecognitionsystemtocompletetheQRcodesymboldecodingcarriedbydeducingthefunctionofinformation.

KeyWords:

Androidmobilephonesystem;QRCode’sRecognition;DESencryptionanddecryption

目次

1.1系统研究的目的和意义1

1.2国内外研究情况及背景1

1.3可行性研究3

1.4本文研究内容3

2开发相关技术介绍4

2.1Android平台介绍4

2.2开发环境的搭建4

2.3二维码的介绍5

2.4DES加密算法介绍7

3系统分析与设计7

3.1系统框架设计7

3.2数据加密与二维码生成模块7

3.3二维码扫描识别与数据解密模块8

4系统的实现8

4.1系统的主要流程8

4.2数据加密与二维码生成模块的实现9

4.3二维码扫描识别与数据解密模块的实现11

4.4AndroidCamera的调用17

5系统调试及测试17

5.1系统调试17

5.2系统测试17

5.3测试结果17

5.4 测试阶段复审与评价17

结论18

参考文献19

致谢20

 

1绪论

1.1系统研究的目的和意义

随着智能手机的普及和信息化水平的提高,在面对一维码信息容量低、数据库依赖程度深的背景下,二维码以其高容量性、高可靠性的优点被人们接受。

二维码作为一种全新的电子信息存储、传递与识别技术,其运用前景也越来越广阔,在我国二维码技术被广泛运用于电子商务、物流管理、电子凭证等诸多领域。

本文提出了基于隐私数据的二维码存取技术,重点研究了Android手机平台上隐私数据的二维码生成与扫描识别,将信息的加密解密与二维码技术结合起来。

一维码的信息容量小,这也决定了它必须依靠数据库才能充分表达信息。

因此如果没有数据库或者无法连接网络,一维码的使用就会受到极大的限制。

此外,用一维码来表示汉字,需要繁琐的转化,效率不高。

二维码是为了解决一维码无法解决的问题而被研制出来的。

二维码具与一维码相比,增加了多个定位点和容错机制。

容错机制能够在无法识别全部二维码的时候,通过几个定位点,就还原出二维码所包含的全部信息。

二维码的生成与开发较为容易,因而不同公司可能有多个不同种类的二维码,而这些二维码往往也具有不同的数据表示结构与识读方法。

一般的二维码是通过三个定位点来进行辨识的。

而二维码的自动校准方向也是通过这三个定位点实现的,所以从任何方向扫描二维码都是可以被识别的。

容错机制则实现了不完全读取的功能,在无法读取全部条码或者条码被损毁的情况下,也能够正确地还原二维码包含的数据。

因为二维码的安全性较高,用二维码容纳信息的安全保障性较好。

二维码是大容量、高密度性信息进行存储、携带与识读的高效方法。

手机二维码实现的主要功能有两种:

一是识读,识读是借助基于二维码识别系统的相关应用识读出条码所包含的信息,通过识读二维码可以在浏览器打开二维码内的链接,从而进行网上浏览、网上购物、信息查询等多种活动;二是身份登录,是由服务提供者向通过认证的用户发送含有身份认证信息的二维码,用户通过二维码读取设备对二维码进行扫描识别,从而实现身份识别的功能,可以作为电子凭证使用。

1.2国内外研究情况及背景

1.2.1国内外发展现状

国外的二维码编码解码技术的开发起源于1980年,一些科研机构研究出了多种二维码图形的编码码制。

而国际自动识别制造商协会、美国标准化协会则完成了QRCode、PDF417、CodeOne、Code16K、Code49等码制的符号标准。

国际电工委员会的条码自动识别技术委员会则制定了QRCode的国际标准,并且沿用到现在。

而西方国家在二维码的扫描识别方面,对于相关设备的设计制造和生产拥有一套成熟的技术。

各类二维码的应用系统广泛传播。

早在1993的时候,中国就开始进入二维码领域,对常用的几种二维码技术进行了分析与研究。

随着现代社会的迅速发展和相关电子产业的爆炸式增长,电子厂商对二维码这种新技术的需求也与日俱增。

1.2.2二维码加密算法运用的的背景

随着智能手机的普及以及信息化的发展,二维码的实用性越来越为人们青睐,利用二维码进行信息读取和用户登入已经十分普遍。

但是由于二维码技术的门槛较低,并且二维码的编码与解码技术已经非常成熟,违法分子利用二维码来传播病毒并进行犯罪活动,而一个二维码内是否具有安全隐患,从其外表上是难以辨别的,这些都严重威胁了社会的信息安全和人们的财产安全。

面对二维码存在的漏洞与隐患,信息部门技术的完善与用户自身防范意识的提高都很重要,但是这些只能治标。

唯有从数据本身着手,开发带有安全认证的扫码技术,才能有效防患于未然。

因此,数据加密技术的运用势在必行。

在密码学中为了防止一个密码被发现内在规律而破解,密码的生成必须具有随机性,但是加密的方法也与所需加密的数据量的大小相关。

DES由于需要进行16轮迭代置换,因此在对小数据量数据进行加密时具有明显的优势,而QR码的是以二进制数据0与1进行编码的,数据量较小,在满足数据加密的要求时,是比较经济的选择。

1.2.3加密算法的发展历史

随着社会的进步,对于信息保密的要求也不断提高,加密算法也处于不断地发展完善中。

早在公元前400年,古希腊人就发明了艾奈阿斯绳结等置换密码;第一次世界大战时,对于无线电信息的保密使得人们再次重视密码学;在第二次世界大战时,德军使用的“恩尼格玛”密码机,是密码学的再次实践应用;而20世纪末的时候,美国国家标准局公布实施的“美国数据加密标准”,就是现在DES加密算法的由来。

1.2.4加密算法的分类

加密一般分为三类,分别是消息摘要算法、对称加密算法和非对称加密算法。

(1)消息摘要算法

消息摘要算法是输出固定格式与长度的密文的一种算法,与输入端数据的大小无关,经过加密后输出的密文的长度是一定的。

消息摘要算法的原理是根据一定的规则对输入的数据进行有规律的提取,被提取的数据内容与原数据有对应关系,原始数据改变,则输出密文就相应变化,因此这种算法数据的保密性很高。

但是,因为输出密文长度的既定性也使得其无法还原为初始数据,是不可逆的,因此消息摘要算法一般只用来对数据的完整性进行验证。

经过不断的发展完善,现在的消息摘要算法主要有MD4、MD5、SHA等几种,其中MD5算法的运用最广泛。

单向散列函数MD5是公认的强度最高的加密算法,是在解决MD4冲突的漏洞的基础上发展而来的。

(2)对称加密算法

对称/不对称加密算法与其他算法的区别在于密钥“key”的运用。

对于以往不用密钥,以固定规律变换字符串形成密码来传输消息,一旦密码变换规则被破解,那么产生的结果往往是灾难性的,二战时日本中途岛的惨败就是由于这点。

而在对称加密算法中,其安全性取决于key的长度,破解难度很高。

数据发送端将数据明文与密钥通过加密算法进行加密,把加密后的密文发送出去。

接收方收到密文后,使用发信方的密钥及相同算法对应的逆算法对密文进行解密,就能把密文恢复成能够识读的明文。

在对称加密算法中,数据的加密和解密使用的是相同的密钥,数据的保密性完全取决于密钥的安全性。

【1】

对称加密算法主要有DES、IDEA、AES、RC4、RC5等,其中DES算法是最常用的加密算法。

(3)非对称加密算法

非对称加密算法的加密过程是单向的,即发信方将明文通过“公钥”加密后传输给收信方,收信方则用“私钥”进行解密,把密文恢复成能够识读的明文。

而信息一旦加密,则“公钥”也无法进行解密,这样即使数据在中途被人拦截,入侵者也无法对其进行破解,只有“私钥”的持有者才能识读信息内容。

非对称加密算法现在常用的是RSA算法。

1.3可行性研究

一项设计的实现必须分析它的需求与可行性,而如果这项设计有深远意义却在技术与系统上难以实现,那么这项设计就不能称之为有意义的设计。

本文结合类似的实例,主要从社会、经济、技术与操作四个方面讨论该项设计的系统开发可行性。

1.3.1社会可行性

本设计实现了让用户通过账号登录方式扫描识别二维码的功能,并且具有操作简单、界面友好的特点,可以使人们深入了解Android手机二维码扫描识别功能实现的过程。

1.3.2经济可行性

目前二维码在国内已经引起用户的广泛关注,许多相关研究工作已经展开,作为一项发展前景远大的技术,资金的投入并没有问题,而本项设计的实现基于普通PC和Android手机,对硬件与系统要求都不高,成本低廉。

从经济可行性分析来看是可行的。

1.3.3技术可行性

本设计以应用和实用为主,选择了Java语言作为开发语言,Eclipse作为开发环境,并且二维码扫描与识别技术作为一项前景广阔的技术,目前在国内外得到长远发展,有较成熟的技术,技术上是完全可行的。

本设计综合考虑了数据加密的相关原理和数字图像加密方法与优缺点之后,研究了对数据进行加密解密的方法,与二维码的结构特征和生成、扫描识别方式,通过Java程序的设计,实现DES加密算法与二维码加密的有机统一,来确保其安全性与保密性。

1.3.4操作可行性

本设计只需要一台Android智能手机安装应用并进行二维码的扫描识别,操作方便可行。

1.4本文研究内容

本文研究的内容如下:

(1)对系统进行需求和可行性分析;

(2)检验信源数据的格式规范,基于DES加密算法,利用密钥对其进行加密;

(3)二维码识别软件的设计与运行试验;

(4)分析系统实现与设计的优点与缺点,查漏补缺,完善系统;

(5)分析开发工具的功能,实现设计的目标。

2开发相关技术介绍

2.1Android平台介绍

Android平台是由Google和几十个手机公司在内的开发行厂商联盟组织OpenHandsetsAlliance开发设计出来的,它的目标是以较低的设备研发成本等,开发出一种具有优良用户界面的程序。

出现已有十几年历史的Symbian系统渐行渐远,而Windowsmobile如今也鲜为人知,未来手机的操作系统需要一个稳定的物理层来支持,更需要互动型、灵活的设计环境。

由于设计理念的不同,相比于iPhone是由厂家设计、工程师来实现的特点,Android的开源性本质使得其具有了很多iPhone不具有的优势。

在Android上发布应用程序不需要任何的许可;而Android平台也并没有任何隐藏与权限的设定,API对所有人都是透明的;这也意味着所有人都可以自由修改、完善Android的系统组件。

Android系统是一种基于Linux操作系统的灵活的、开放源代码的操作系统。

Android系统的系统架构类型是分层架构,分为应用程序层、应用程序框架层、系统运行库层和Linux内核层。

Android系统的基础为四大组件,分别是Activity、Service服务、ContentProvider内容提供者以及BroadcastReceiver广播接收器。

【2】而随着Android系统的不断发展,可以运用Java等多种编程语言开发Android系统。

Android系统架构如图1所示。

Application

ApplicationFramework

Librarics

AndroidRuntime

LinuxKernel

图1Android系统架构图

2.2开发环境的搭建

2.2.1先期环境搭建

(1)Android开发环境搭建

首先安装Java开发环境,安装文件jre-8u40-windows-x64.exe,下载并解压adt-bundle-windows-x86_64.rar文件,打开adt-bundle-windows-x86_64\eclipse\eclipse.exe,环境搭建完毕。

(2)Java开发环境

下载并解压eclipse-SDK-win32.rar文件,打开Eclipse软件。

(3)导入Zxing二维码的源码

导入系统,打开源码中的Android项目,将core.jar文件加入项目。

2.2.2Eclipse开发平台介绍

本设计中二维码的识别是通过32位windows操作系统上Eclipse开发平台搭建开发环境,运用Java语言对二维码的扫描功能进行设计开发,进而在PC上开发出二维码扫描识别的Java程序来进行二维码的识别。

EclipseIDE安装的ADT插件为我进行Java程序的设计与系统的开发搭建了良好的平台。

Eclipse是一个附带了标准的插件集的一个框架与一组服务。

插件集中则包了JDK(即含Java开发工具)。

2.2.3Base64编码方式

在本次的设计过程中,发现对密文进行编码后,会出现乱码的情况,推测是编码方法的原因。

试用unicode、Base64等多种编码方法后,发现采用Base64编码方法对密文进行编码后不会出现乱码。

Base64是一种基于64个可打印字符来表示二进制数据的表示方法,是网络上最常见的一种用于传输8Bit字节代码的编码方式。

2.3二维码的介绍

二维码是在条码技术的基础上发展而来的,是在一维码难以满足用户电子识别需求的环境下产生的。

由于一维码信息容量较低,其往往只能实现对物品的标识,而二维码则不然,相对于一维码信息容量低、数据库依赖性较大、安全性不高的不足,通过逐步的发展完善,二维码具有了高密度、信息量容量大、编码范围广、安全性高、读取率高、具有纠错功能、保密性、防伪性好、成本低、易制作等优点。

同时二维码还能够对信息的整体进行容错识别,也能对图形的旋转变化进行矫正处理。

由于二维码能够在横向和纵向两个维度上进行信息的存储与表达,因而能够以手机摄像框所包含的小区域来表达大量的信息,实现其高容量的信息容纳功能。

2.3.1二维码的原理

二维码是用特定的几何图形按一定规律在二维方向上分布的黑白相间的矩形方阵记录数据符号信息的新一代条码技术,它是由一个二维码矩阵图形和二维码号组成,有些还包含说明文字。

【3】二维码是通过摄像头等图像采集设备进行输入,进而对信息进行自动处理。

2.3.2二维码的分类

二维码通常分为堆叠式和矩阵式二种类型。

(1)堆叠式二维码又称为行排式二维码,其编码的原理是在一维码的基础上,将多行截短的一维码按需要堆叠成二行或多行。

主要有PDF417、CODE49、CODE16K几类。

(2)矩阵式二维码又称为棋盘式二维码。

其编码的原理是在一个矩形空间里通过黑、白像素在矩阵中的不同分布进行编码。

【4】在矩阵相应元素位置上,用点的出现表示二进制“1”,点的不出现表示二进制的“0”,点的排列方式表示二维码的内容。

主要有:

QRCode、DataMatrix、MaxiCode、CodeOne几类。

2.3.3QR码的介绍

QR码是在1994年的时候由日本的Denso公司研究发明的一种矩阵式二维码。

在各类二维码中,QR码的运用范围与频率最广。

(1)QR码的简介

QR码又称为快速响应矩阵,就是人们常说的快速响应码,全文是QuickResponseCode。

QR码结构图如图2所示。

(2)QR码的结构与特性

QR码除具有信息容量大、可靠性高等一般条码所具有共性特点外,还具有能够在二维(横向与纵向)上存有信息、识读速度快、数据密度大、占用空间小的主要特点。

相比于一般的条码只能单方向包含有信息,QR码能够在二维尺度上容纳信息,这也解释了为何QR码包含的信息比一般性条码要多。

QRCode全称QuickResponseCode,译为快速反应条码,这也直观地说明了QR码超高速识读的特点。

【5】这也是它区别于一般二维码的主要特性。

使用条码识读设备读取QR码的时候,单位时间内(秒)能够读取并且识别包含3000个字符的QR码符号,而其他种类的二维码的读取识别速度则远远慢于QR码。

QRCode码还具有全方位识读的特点。

识别QR码的过程中会将具有一定旋转角度的QR码作旋转处理,它的信息读取则是通过QR码的位置探测图形来进行自动识别,用硬件来实现的,因此,信息识读过程所需时间很短。

因为日本的文字中大量存在着汉字,因此QR码在设计之初就已经实现了汉字的支持系统。

QR码表示汉文是通过特定的数据压缩模式来实现的,而其他二维码表示汉字的形式是通过字节实现的,相比较而言,用QR码来表示汉字的效率更高。

2.4DES加密算法介绍

DES全称DataEncryptionStandard,即数据加密标准,是一种使用密钥加密的分组加密算法,属于对称加密算法。

DES加密算法的安全性源于它的密钥,因此在使用时密钥的强弱决定了所加密数据的安全性与保密性。

2.4.1DES概况

DES算法是一种分组密码,是将明文分组后进行分别加密的一种算法。

DES加密算法入口参数包含Key、Data和Mode三种。

Key是密钥,DES算法中加密与解密的密钥是一样的,唯一的区别是加密与解密所使用的子密钥的顺序相反;Data是要进行加密、解密处理的数据;而Mode则是DES的工作方式,即加密、解密。

2.4.2初始置换

DES算法以64比特位为基本单位,把输入的64位的明文变为64位的密文输出出来,它使用64位的密钥。

DES加密算法的置换规则是将按一定的规律将64位输入块进行一次线性变换,把输入的64位块按位重新组合,换位输出后,把输出的64位分为L0、R0两部分,每部分长32位,L0是输出的左32位,R0是右32位。

然后在密钥的控制下,经过了16次迭代运算。

第一次置换的具体流程是:

首先把输入的第58位数据换到第1位,然后把第50位数据换到第2位,...,依此类推,第64位是原来数组的第7位数据。

2.4.3逆置换

DES解密是加密算法的逆置换,是经过16次的迭代加密运算后,将所得的L16、R16进行逆置换,得到的密文为输出端。

3系统分析与设计

3.1系统框架设计

二维码系统有两个模块:

数据加密与二维码生成模块、二维码的扫描识别与数据解密模块。

本设计中二维码的生成是通过在草料网实现的,而二维码的加密与识别则是在SDK、Eclipse等多种开放源代码的java开发平台上实现的。

在二维码的扫描识别过程中调用了手机的相机功能来扫描条形码,而摄像功能还运用了自动聚焦、错误容纳等模块。

而在二维码的识别过程初始,还运用了用户登录相关的DES加密算法等技术。

3.2数据加密与二维码生成模块

3.2.1数据加密模块

该部分设计的运行步骤如下:

(1)用户输入一段文本(本设计中定为字符串);

例如:

本设计中输入字符串“admin/123456/192.168.1.1”。

(2)设置DES加密算法的置换规则;

(3)检测输入参数格式是否正确,错误直接返回空值(null);

(4)将用户输入的密钥选择为加密的初始密钥;

(5)执行加密操作,并且返回加密后的数据;

3.2.2二维码生成模块

二维码的生成已经有很多成熟的应用,而自行制作成本较高,因此本设计借助现有的开源项目,直接使用在线的Zxing中相应的编码包。

本设计中是将加密后的密文在草料网上转化为二维码。

3.3二维码扫描识别与数据解密模块

调用Android的手机摄像头功能,进行对QR码图像数据的采集,获取摄像头数据并且将图像数据转化为计算机可以识别的位图像素数据,从而方便系统进行解码。

首先打开主类CaptureActivity,并启动CameraManager摄像头管理类采集图像,然后利用CaptureActivityHandle类对图形进行解码处理,接着利用DecodeHandle类对数据进行解码和传送,最后在handleDecode中得到并查看二维码中的原始数据。

而解码的真正入口是CaptureActivity的Handle里面的。

(1)用户对二维码图片扫描后,将接收到处理模块发送的数据发送到解码模块;

(2)根据加密使用的密钥,进行相应的解密;

(3)对所的信息进行纠错处理,然后显示内容。

4系统的实现

4.1系统的主要流程

将设计的应用BarCodeTest.apk在Android智能手机上进行安装,用户进行账号密码的登录,然后开启摄像头功能并进行图像采集,将图像显示在手机屏幕中间。

用户将手机对准要扫描的二维码,然后开始识别。

如果二维码识别成功并且所识别的二维码编码有效,则显示识别后的二维码信息;如果识别失败则发出提示音提醒用户并且选择重新扫描或者返回。

系统流程图如图3所示。

4.2数据加密与二维码生成模块的实现

4.2.1数据加密模块的实现——DES加密算法

(1)构造DES加密的函数,并初始化密钥。

publicDES(Stringkey){

this.key=key;

}

(2)输入参数后,先对参数格式的正确性进行检测,如果错误就直接返回空(null)。

privatebyte[]UnitDes(byte[]des_key,byte[]des_data,intflag){

if((des_ke

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

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2