【Android论文栏目提醒】:网学会员为需要Android论文的朋友们搜集整理了[精品]基于android手机的加密QR二维码识别系统 - 期刊论文相关资料,希望对各位网友有所帮助!
软件 2012 年第 33 卷 第 4 期 Software 国际 IT 传媒品牌 基于
android手机的加密QR二维码识别系统 刘云龙,吕韬,曾晋,刘法旺 (中国软件评测中心 信息系统可靠性测试中心,北京 100048) 摘 要:本文对 QR 码及译码图像的预处理算法进行简单介绍。
针对工业物料管理系统对于保密安全的要求,本文采用了 DES算法对物料数据进行加密,将加密数据用 QR 码来表示并阐述了在手机识别系统中的解密流程,最后介绍了在
android 手机系统下进行设计与优化实现。
关键词: QR 条码识别; 码;
android;解密;DES 中图分类号:TP335 文献标识码:A DoI: 10.3969/j.issn.1003-6970.2012.04.011 Encrypted QR Code Recognition System Based on
Android Mobile Phone LIU Yun-long LV tao ZeNG Jin LIU fa-wang Information System Reliability Testing Center China Software Testing Center Beijing 100048 China 【Abstract】 this paper introduced the basic structure of Qr code and image preprocessing algorithm before the decode process. ac-cording to industrial material management system for privacy and security requirements the system used the encryption algorithm basedon DeS to 20 encrypt the Qr code data then used it to indicate the material data. the paper introduced the decryption process and optimalrealization. the results showed the recognition system can recognize the Qr code in the
android mobile phone. 【Key words】 Barcode recognition Qr code
android Decrypt DeS0 引 言 华人民共和国《快速响应矩阵码》标准中的规定。
条码技术是在信息技术基础上发展起来的一门集编码、印刷、识别、数据采集与处理为一体的综合性技术。
目前,由于工业中产生的数据信息量不断增加,传统的一维条码技术已经不能满足社会的需求,所以二维码技术得到广泛应用。
随着内置摄像头手机的逐渐普及 手机作为一种数据采集设备使得二维条码的扫描和识别变得更加便捷。
加密算法通过密钥将明文变为一段不可直接读取的代码。
为了使 QR 码的识别更加具有保密性,在为企业编写的物料智能采制系统中采用 DES 算法对数据码字进行加密。
本文只阐 图 1 QR 码的符号结构述在识别系统对于 RC4 算法的解密。
本文将 QR 二维码技术 Fig.1 symbolic structure of QR code应用于摩托罗拉公司推出的 ME525 手机,重点介绍了 QR 二维码的译码过程 DES 算法解密过程及其在
android 系统下 1.2 本系统 QR 码译码流程的实现。
1 QR 码简介及译码流程1.1 QR 码简介 图 2 译码过程流程图 QR 码是一种矩阵码,具有可表示内容多,数据信息量大, Fig.2 decode process flow diagram 1防伪纠错性高,高速全方位识别等优点 。
它由功能图形与编 其中图像预处理主要包括三部分内容:灰度化,中值滤波,码区域构成,如图 1 所示。
功能图形包括位置探测图形,定位 二值化。
下面简单介绍这三个处理。
图形,校正图形等,这些图形不用于编码;编码区域包括了数据 1.2.1 灰度化纠错信息,格式信息,版本信息等。
QR 二维码包括了 40 个规 考虑到 QR 码图像由黑白模块组成 而手机摄像头拍出格,每个规格都有自己不同的格式,具体格式要求可以参考中 的图像为彩色图像,为了减少图像的信息量,我们将所获取图软件杂志欢迎推荐投稿:http://www.ccomsoft.com/ 34软件 (您的文章得到院士的关注) 刘云龙 等:基于
android 手机的加密 QR 二维码识别系统像进行灰度化。
考虑到手机设备采用的是 YUV 方式,为了保证图像的准确性,YW,色差信号为 0。
标准灰度化计算公式为 W0.30R0.59G0.11B,但是人眼对 RGB 中 G 绿色最为敏感,采用改进公式 WG 方法进行灰度化。
这样不存在浮点预算,可以提高预算效率。
1.2.2 中值滤波 手机获取的图像噪声来源一般是光学采集系统 为椒盐噪声,使用 3×3 矩形窗口中值滤 波适于条码图像。
其基本原理是把数字图像中一个点的灰度值用该点的邻域中各点的平均值代替。
同时由于中值滤波是抑制随机噪声的非线性处理方法,能较好地保护边界。
处理效果如图 3 所示: 图 5 图像的直方图 Fig.5 histogram of the picture 2 DES 算法在 QR 码中的应用与解密 2.1 DES 算法的介绍 又被成为美国数 DES 算法为密码体制中的对称密码体制, 据加密标准 2-3, 1972 年美国 IBM 公司研制的对称密码体 是 图 3 中值滤波去噪处理 制加密算法。
其密钥长度为 56 位,明文按 64 位进行分组,将 Fig.3 median filtering processing 分组后的明文组和 56 位的密钥按位替代或交换的方法形成密 利用根据国家标准 GB/ T 18284 2000 制作的普通的 文组的加密方法。
DES 加密算法特点:分组比较短、密钥太短、QR 条码识别工具进行测试,加未经中值滤波的不能识别,经 运算速度较慢。
DES 工作的基本原理是, 密码生命周期短、 其入滤波的可以使识别。
如图 4 所示: 口参数有三个 :key、data、mode。
key 为加密解密使用的密钥, data 为加密解密的数据,mode 为其工作模式。
当模式为加密 明文按照 64 位进行分组, 模式时, 形成明文组,key 用于对数据 当模式为解密模式时,key 用于对数据解密。
加密, 实际运用中, 这样才具有高的安全性。
密钥只用到了 64 位中的 56 位, 2.2 DES 算法的解密步骤 1 取得密钥 4-5。
取得一个 64 位的密钥,经过等分密钥, 16 移位密钥, 次迭代密钥等处理后按照密钥选取表取得密钥。
2 密文的解密。
将密文数据加入密钥后扩展,然后进行数 据压缩,数据换位,数据异或,数据迭代等处理输出明文。
本文 就不再详细介绍每个处理过程。
图 4 二维码识别结果 2.3 DES 算法在 QR 码中应用 Fig.4 recognition results of the barcode 通过 DES 算法将数据进行加密,然后将生成的密文进行1.2.3 二值化 QR 编码,生成 QR 图像。
在解码时反之。
将加密算法应用于 二值化就是将图像上的像素点的灰度值设置为 0 或 255, QR 码的编码及识别,可以使 QR 码更加具有防伪性,安全性。
也就是将整个图像呈现出明显的只有黑和白的视觉效果。
图像包括目标物体、背景还有噪声,要想从多值的数字图像中直接提 3 QR 码识别系统在
Android 平台上的实现取出目标物体,最常用的方法就是设定一个全局的阈值 T, T 用 3.1
Android 系统简介将图像的数据分成两部分:大于 T 的像素群和小于 T 的像素
Android 是一种以 Linux 为基础的开放源码操作系统,主群。
将大于 T 的像素群的像素值设定为白色(或者黑色)小于 , 要使用于便携设备 6。
Android 应用程序使用 Java 做为开发T 的像素群的像素值设定为黑色(或者白色) 。
手机拍出的图像 语言。
的直方图如图 5 所示,可以清楚的看到直方图具有两个峰,所以 3.2 系统的主要模块与功能 确定目标物体。
我们采用直方图双峰方式进行图像分割, 图像采集:点击按钮启动程序同时启动手机的摄像头,开 35 软件杂志欢迎推荐投稿:http://www.ccomsoft.com/软件 (您的文章得到院士的关注) 刘云龙 等:基于
android 手机的加密 QR 二维码识别系统始实时捕捉 QR 码图像,如果检测到 QR 码,就将这一帧的图 public void getKeyString strKey 像获取进行图像处理。
try KeyGenerator _generator KeyGenerator.150 getInstanceDES 图像处理:对获取到的图像数据进行预处理。
_generator.initnew SecureRandomstrKey.getBytes this.key _generator.generateKey QR 码译码:按照国家 GB/T 18284 2000 标准,进行解码。
_generator null catch Exception e DES 算法解密:按照 DES 算法的要求及步骤对数据码字 e.printStackTrace进行解密。
在编写系统的过程中利用多线程及 handler 机制可以提 2 解密:高系统的效率,避免系统内部资源调用产生冲突。
public String getDesStringString strMi 3.3 各模块的实现 byte byteMing null byte byteMi null3.3.1 图像采集 String strMing 新建
android 工程后,系统会自动生成 R.JAVA An- try return new StringgetDesCodehex2bytestrMi.getBytes 在droidManifest.xml 等文件, AndroidManifest.xml 中添加 catch Exception e e.printStackTrace byteMi null 获得打开摄像头的用户权限,创建自己的 camera 类 设 return strMing置图像预览框的属性,调用自动对焦 Private Camera.AutoFocusCallback myAutoFocusCallBack new Camera.AutoFocusCallback 4 结语 public void onAutoFocusboolean success Camera camera 本系统在摩托罗拉开发的里程碑,里程碑 2,ME525,HTC 开发的 G7 手机上进行测试,如图 6 所示,由于采用合理的预处 如果对焦成功那么回调 Camera.PreviewCallback 类,输 理功能,在测试中, 除 测试图片 73 张, 4 张污损图片不能译码出图片,取得指定范围帧的数据,将数据进行预处理。
外,其余测试结果良好,处理速度较快。
Android 手机系统功3.3.2 图像处理 能丰富而且可扩展性强,在工业中应用手机识别二维码可显著 打开摄像头后获取的图片是 YUV 编码方式 需要进行 提高管理生产效率。
相应的变化。
创建一个转换图像格式类:public class GetYU-VImage 创建图像处理类 public class ImageHandle。
这个类中的方法主要有: 获取 YUV 图像类:public class GetYUVImage 灰度化:public byte ImagechangeGraybyte image 中值滤波:public byte MedianFilterbyte image 图 6 测试结果 二值化:public byte Binaryzationbyte image Fig.6 test result 图像处理完成后生成一张位图,提交给译码类。
3.3.3 解码模块 参考文献 按照国家标准 GB/ T 18284 2000 规定的解码步骤进行 1 国家质量技术监督局发布 . 中华人民共和国国家标准 -- 快速响代码编写。
在解码过程中存在需要大量数据处理的情况,采用 应矩阵码 S. 标准出版社 .2001.多线程的操作方法利用 handler,调节消息队列,避免多线程操 2 Kieseberg Peter Leithner Manuel Mulazzani Martin . QR code security. MoMM2010 - 8th International Conference作时遇到资源冲突的异常发生。
汉字解码时采用 GB2312 标 on Advances in Mobile Computing and 185 Multimedia p准,解密出数据码字,将码字变为一个比特流交予 DES 解密模 430-435 2010块进行解密。
3 方媛,傅华明 . 二维条码加密算法的研究 J. 电子技术 .2009,1.3.3.4 DES 解密 4 管莹,敬茂华 .DES 算法原理及实现 . 软件开发与设计,2008,10: 5-9 Java 的 API 函数库中具有 DES 算法,可以直接调用库 5 Bruce Schneier. 应用密码学 - 协议 . 算法与 C 源程序 . 机械工函数。
业出版杜,2000 1 取得密钥: 2010. 6 谷歌公司 .
android 开发手册,软件杂志欢迎推荐投稿:http://www.ccomsoft.com/ 36