基于DES算法的二维码扫描的实现
摘要:随着手机Android系统的普及和信息化水平的提高,手机二维码扫描功能在我国已经为人们广泛的认识和接受,人们的生活和工作中对于二维码的运用也越来越频繁。本文通过eclipse软件设计了一项依托于安卓手机系统之上,利用安卓手机的摄像功能和二维码编码与解码的原理,以及DES加密算法的相关知识,实现二维码生成、加密与识别、解密的系统。该项设计内容包括三块:二维码的生成、安卓系统二维码的扫描识别系统设计与数据的加密解密的实现。二维码的生成系统完成了从数据输入、加密到生成相应二维码的功能,识别系统完成对采集到的二维码符号进行译码、解密并还原出所携带信息的功能。 关键词:Android手机系统;二维码生成;二维码识别;DES加密解密 The QR Code scanning System Based on DES
Jiang Dongyang
Abstract:
As the universe of the Android mobile phone system and the
development of the informatization level, the using of the QR Code recognition’s function is more and more frequent. Through this thesis the Eclipse software designs a system which enables the QR Code generation and recognition system, on the basis of android camera, the principle of coding and handling code, and the relevant knowledge of DES. This design covers three parts: Android QR code encryption design, QR code identification system design, and mobile phone user login system design. Generating system from the function of the input data to generate the corresponding QR code, collected in recognition system to complete the QR code symbol decoding carried by deducing the function of information.
Key Words:Android mobile phone system; QR Code’s Recognition; DES
encryption and decryption
目 次
1.1 系统研究的目的和意义 .................................................. - 1 - 1.2 国内外研究情况及背景 .................................................. - 1 - 1.3 可行性研究 ............................................................ - 3 - 1.4 本文研究内容 .......................................................... - 3 - 2 开发相关技术介绍 ........................................................ - 4 - 2.1 ANDROID平台介绍 ........................................................ - 4 - 2.2 开发环境的搭建 ........................................................ - 4 - 2.3 二维码的介绍 .......................................................... - 5 - 2.4 DES加密算法介绍 ....................................................... - 7 - 3 系统分析与设计 .......................................................... - 7 - 3.1 系统框架设计 ........................................................... - 7 - 3.2 数据加密与二维码生成模块 ............................................... - 7 - 3.3 二维码扫描识别与数据解密模块 ........................................... - 8 - 4 系统的实现 .............................................................. - 8 - 4.1 系统的主要流程 ........................................................ - 8 - 4.2 数据加密与二维码生成模块的实现 ........................................ - 9 - 4.3 二维码扫描识别与数据解密模块的实现 ................................... - 11 - 4.4 ANDROID CAMERA的调用 ................................................... - 17 - 5 系统调试及测试 ......................................................... - 17 - 5.1 系统调试 ............................................................. - 17 - 5.2 系统测试 ............................................................. - 17 - 5.3 测试结果 ............................................................ - 18 - 5.4 测试阶段复审与评价 ................................................... - 18 - 结 论 .................................................................... - 19 - 参 考 文 献 ............................................................... - 20 - 致 谢 ....................................................... 错误!未定义书签。
1 绪论
1.1 系统研究的目的和意义
随着智能手机的普及和信息化水平的提高,在面对一维码信息容量低、数据库依赖程度深的背景下,二维码以其高容量性、高可靠性的优点被人们接受。二维码作为一种全新的电子信息存储、传递与识别技术,其运用前景也越来越广阔,在我国二维码技术被广泛运用于电子商务、物流管理、电子凭证等诸多领域。本文提出了基于隐私数据的二维码存取技术,重点研究了Android手机平台上隐私数据的二维码生成与扫描识别,将信息的加密解密与二维码技术结合起来。
一维码的信息容量小,这也决定了它必须依靠数据库才能充分表达信息。因此如果没有数据库或者无法连接网络,一维码的使用就会受到极大的限制。此外,用一维码来表示汉字,需要繁琐的转化,效率不高。
二维码是为了解决一维码无法解决的问题而被研制出来的。二维码具与一维码相比,增加了多个定位点和容错机制。容错机制能够在无法识别全部二维码的时候,通过几个定位点,就还原出二维码所包含的全部信息。二维码的生成与开发较为容易,因而不同公司可能有多个不同种类的二维码,而这些二维码往往也具有不同的数据表示结构与识读方法。一般的二维码是通过三个定位点来进行辨识的。而二维码的自动校准方向也是通过这三个定位点实现的,所以从任何方向扫描二维码都是可以被识别的。容错机制则实现了不完全读取的功能,在无法读取全部条码或者条码被损毁的情况下,也能够正确地还原二维码包含的数据。
因为二维码的安全性较高,用二维码容纳信息的安全保障性较好。二维码是大容量、高密度性信息进行存储、携带与识读的高效方法。手机二维码实现的主要功能有两种:一是识读,识读是借助基于二维码识别系统的相关应用识读出条码所包含的信息,通过识读二维码可以在浏览器打开二维码内的链接,从而进行网上浏览、网上购物、信息查询等多种活动;二是身份登录,是由服务提供者向通过认证的用户发送含有身份认证信息的二维码,用户通过二维码读取设备对二维码进行扫描识别,从而实现身份识别的功能,可以作为电子凭证使用。
1.2 国内外研究情况及背景
1.2.1 国内外发展现状
国外的二维码编码解码技术的开发起源于1980年,一些科研机构研究出了多种二维码图形的编码码制。而国际自动识别制造商协会、美国标准化协会则完成了QRCode、PDF417、CodeOne、Code16K、Code49等码制的符号标准。国际电工委员会的条码自动识别技术委员会则制定了QRCode的国际标准,并且沿用到现在。而西方国家在二维码的扫描识别方面,对于相关设备的设计制造和生产拥有一套成熟的技术。各类二维码的应用系统广泛传播。
- 1 -
早在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)对称加密算法
- 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 本文研究内容
- 3 -