王雨+張智+商錦+林亮
摘要:二維碼具有存儲量大,保密性高,抗損性強,成本低廉,制作要求低等特性。隨著二維碼技術(shù)的不斷發(fā)展與完善,二維碼正在我們的生活中扮演重要的角色,并且二維碼已應(yīng)用于諸多領(lǐng)域,但是二維碼技術(shù)在地鐵方面應(yīng)用匱乏。該文章總結(jié)了各類二維碼的優(yōu)劣勢并主要研究了二維碼的關(guān)鍵技術(shù),加密與解密技術(shù),并結(jié)合當(dāng)前主流技術(shù)設(shè)計了一個移動地鐵購票應(yīng)用的案例。
關(guān)鍵詞:二維碼;關(guān)鍵技術(shù);二維碼應(yīng)用;移動地鐵購票應(yīng)用;加密解密技術(shù)
中圖分類號:TP399 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2016)33-0187-03
Abstract: Two-dimensional code has many characteristics , such as a large storage capacity, high security, strong anti loss, low cost, low production requirements. With the continuous development and improvement of two-dimensional code technology , it is playing an important role in our life, and two-dimensional code has been widely used in many fields. But the two-dimensional code technology is rarely used in the subway, there is no real subway class app to provide services to passengers. This article summarizes the advantages and disadvantages of various types of two-dimensional code and mainly studies the key technology of the two-dimensional code,encryption and decryption technology and combines with the current mainstream technology to design a mobile Metro ticketing application.
Key words: two-dimensional code;key technology; two-dimensional code application; mobile metro ticketing applications;encryption and decryption technology
1 引言
21世紀(jì)以來一維碼占據(jù)全國主要市場。條碼在我們的日常生活中隨處可見,如在快遞、超市零售、部門管理、醫(yī)療衛(wèi)生以及制造等行業(yè)中,一維條碼仍處于主導(dǎo)地位,其中在大眾消費領(lǐng)域最廣泛,占了條碼市場的80%左右。由于其具有價格優(yōu)勢,發(fā)展時間較長等特點逐漸形成了一定規(guī)模和標(biāo)準(zhǔn)。
然而,隨著條碼技術(shù)飛速發(fā)展,人們?nèi)粘I畹男枨蟛粩嘣黾?,二維碼逐漸替代一維碼終將是一個大趨勢。二維碼具有存儲量大,抗損性強,成本低,不依賴于數(shù)據(jù)庫和計算機網(wǎng)絡(luò),保密防偽性能強等優(yōu)點,使數(shù)據(jù)采集和信息處理的速度加快,極大地提高了工作效率。隨著硬件技術(shù)的發(fā)展,也將推動二維碼市場的升溫。如今,二維碼已經(jīng)滲透到各行各業(yè),它的發(fā)展呈現(xiàn)一片繁榮景象。
本文對二維碼的關(guān)鍵技術(shù)進行了研究分析,并基于研究的技術(shù)設(shè)計構(gòu)建了一套移動地鐵系統(tǒng)的實例。
2 二維碼概念及特點
2.1 二維碼技術(shù)概念
二維碼(2-dimensional bar code)是用某種特定的幾何圖形按一定規(guī)律在平面(二維方向上)分布的黑白相間的圖形,用于記錄數(shù)據(jù)符號信息等。在代碼編制上巧妙地利用構(gòu)成計算機內(nèi)部邏輯基礎(chǔ)的“0”、“1”比特流的概念,使用若干個與二進制相對應(yīng)的幾何形體來表示相關(guān)信息,通過圖像輸入設(shè)備或光電掃描設(shè)備自動識讀從而實現(xiàn)信息自動處理。它具有條碼技術(shù)的一些共性:每種碼制有其特定的字符集;每個字符占有一定的寬度;處理圖形旋轉(zhuǎn)變化點;有一定的校驗功能,對不同行的信息自動識別功能等。
2.2 特點
1)二維碼信息承載量更大
一維碼的信息部分只能是數(shù)字或字母,空間利用率較低,數(shù)據(jù)容量較小一般只可容納30個字符左右。二維碼信息承載量大,最大數(shù)據(jù)含量可達(dá)1850個字符,不僅能顯示數(shù)字、字母,還可以顯示的信息內(nèi)容可包含,字母,數(shù)字,漢字,字符等更詳細(xì)的內(nèi)容。
2)糾錯能力強
一維碼有一點損壞則無法正常識別,而二維碼則很好解決了這個問題,二維碼把部分?jǐn)?shù)據(jù)進行重復(fù)冗余編碼,簡單說就是一個數(shù)據(jù)在碼上不同的地方同時存儲,這樣當(dāng)其中一個存儲數(shù)據(jù)的區(qū)域被遮擋或損壞時,只要與其存儲數(shù)據(jù)相同的區(qū)域沒有被遮擋或損壞,就可以正常識讀。在最高糾錯級別下,損壞30%的情況,仍可以識讀,糾錯能力與一維碼相比大大增強。
3)速度更快
二維碼由于自身存儲信息量較少,所以不需要調(diào)用電腦的數(shù)據(jù)庫資源進行配合,識別速度由自身因素決定,識別速度大大提高。
4)安全性高
與一維條碼相比,二維碼的保密性更好。通過在二維碼生成中,利用加密算法進行加密,保護了二維碼內(nèi)容不被他人獲得。
3 二維碼關(guān)鍵技術(shù)
3.1 QR Code碼制
(1)QR Code碼簡介
二維碼中常用的碼制有:Data Matrix, Maxi Code, Aztec, QR Code, Vericode, PDF417, Ultracode, Code 49, Code 16K等,目前最為流行的為QR Code碼,這種二維碼能夠快速讀取,與之前的條形碼相比,QR 碼能存儲更豐富的信息,包括對文字、URL 地址和其他類型的數(shù)據(jù)加密,因此本文主要討論QR Code碼制的關(guān)鍵技術(shù)。
(2)QR Code編碼技術(shù)流程
1)首先進行數(shù)據(jù)分析,用以確定編碼的字符類型,按相應(yīng)的字符集轉(zhuǎn)換成符號字符,再選擇糾錯等級,規(guī)格一定的條件下,糾錯等級越低表示真實數(shù)據(jù)的容量越大。
2)其次對數(shù)據(jù)進行編碼,以8位一個碼字的方式將數(shù)據(jù)字符轉(zhuǎn)換為位流,整體構(gòu)成一個數(shù)據(jù)的碼字序列。
3)糾錯編碼。按需要將上面的序列分塊,根據(jù)糾錯等級和分好塊的碼字,產(chǎn)生糾錯碼字序列,再加入到數(shù)據(jù)碼字序列后面,生成一個新的序列。
4)構(gòu)造最終數(shù)據(jù)信息。在確定完規(guī)格后,將上面產(chǎn)生的序列按次序放入分塊中。
5)構(gòu)造矩陣。將探測圖形、定位圖形、校正圖形、分隔符和碼字模塊放入矩陣中。
6)掩摸。將掩摸圖形用于符號的編碼區(qū)域,使得二維碼圖形中的深色和淺色(黑色和白色)區(qū)域能夠按最優(yōu)比率分布,提高閱讀的可靠性。
7)最后將生成格式和版本信息放入相應(yīng)區(qū)域內(nèi)。
3.2移動地鐵應(yīng)用中車票加密技術(shù)
在移動地鐵應(yīng)用中,車票的安全性問題是人們較為關(guān)注的,本文討論一種對二維碼的加密技術(shù),以保障車票的安全性。
(1)混合加密算法
用算法對明文文件進行加密,同時用RSA加密算法對DES密鑰進行加密,混合算法進一步保證了二維碼的安全性。
首先,生成DES加密密鑰,為了提高數(shù)據(jù)的安全性,每一個密鑰K只能使用一次。
其次,生成用于加密明文的密鑰,利用RSA加密算法的公開加密密鑰對DES的密鑰K進行加密,形成DES加密的密鑰Ck,并保存。
最后,利用生成的密鑰Ck對明文P進行DES加密,生成密文。
(2)基于DES與RSA的混合加密算法的解密算法
用DES算法對密文解密,同時用RSA算法對DES密鑰進行解密。
首先,生成用于DES解密的密鑰K。
其次,利用RSA的解密密鑰對DES的密鑰Ck進行解密,形成DES解密的密鑰K。
最后,利用生成的密鑰K對密文C進行DES解密,生成明文文件。
4 二維碼應(yīng)用實現(xiàn)
4.1二維碼車票生成
在乘客明確乘車路線后,對于沒有城市交通卡的乘客,可以選擇手機購票功能。手機購票頁面提供武漢地鐵線路圖,點擊站點,即可設(shè)置起點終點或查看站點信息,也可手動輸入始終點。設(shè)置完成后,會出現(xiàn)票價的詳細(xì)信息(包括路程和地鐵班次時間),乘客選擇購票并完成在線支付后,系統(tǒng)會自動生成一個臨時二維碼并保存在“我的二維碼”中。乘客出入站可直接掃二維碼,在出站后,服務(wù)器端會抹掉該條記錄,而乘客手機里的臨時二維碼也會隨之消失。該功能解決了乘客排隊購票的不便,并為乘客提供在線查看站點出口詳情的方便,而地鐵公司也可省去制作臨時地鐵票的成本。
4.2個人二維碼
對于持有城市一卡通的乘客,應(yīng)用提供交通卡綁定,余額查詢,充值,掛失等功能,用戶可以通過手機號注冊賬號,登錄后即可使用以上四個功能,在完成交通卡綁定后,系統(tǒng)會生成一個個人專屬的二維碼,并保存在“我的二維碼”中。此版塊為交通卡持有人群也提供了極大的便利,可以在忘帶交通卡時,通過手機應(yīng)用里的個人二維碼在閘機上直接掃碼進出站,出站時如果卡上余額不足,及時彈出補差價的提醒,在線支付補完差價后,乘客才可出站。個人二維碼區(qū)別于臨時二維碼的是,不會在使用一次后消失,除非乘客解除綁定。
之所以把我的二維碼單獨列出來作為一個功能版塊,一是由于生成的二維碼分為兩種,二是為了方便乘客快速進出站。如何用戶購買了臨時票,臨時二維碼則會覆蓋個人二維碼,理論上應(yīng)當(dāng)優(yōu)先使用臨時票。
4.3 二維碼讀取技術(shù)
1) 線性CCD和線性圖像式閱讀器
可閱讀一維條碼和線性堆疊式二維碼(如PDF417),在閱讀二維碼時需要沿條碼的垂直方向掃過整個條碼,我們稱為“掃動式閱讀”。這類產(chǎn)品比較便宜。
2)帶光柵的激光閱讀器
可閱讀一維條碼和線性堆疊式二維碼。閱讀二維碼時將光線對準(zhǔn)條碼,由光柵元件完成垂直掃描,不需要手工掃動。
3)圖像式閱讀器
采用面陣CCD攝像方式將條碼圖像攝取后進行分析和解碼,可閱讀一維條碼和所有類型的二維條碼。
5 結(jié)束語
隨著互聯(lián)網(wǎng)的飛速發(fā)展,人們對二維碼的需求不斷的上升,二維碼也在我們的日常生活中扮演重要角色。基于二維碼的移動地鐵應(yīng)用會推動經(jīng)濟社會的發(fā)展,我們需要把握有利和不利因素,二維碼在地鐵中的應(yīng)用還未成型,這有利于我們抓住機遇。當(dāng)然,我們的作品尚且存在諸多的不足,也需要不斷地完善,下一步我們將在識別二維碼的地鐵閘機上進行研究,努力提高識別二維碼的速度與穩(wěn)定性,使我們的系統(tǒng)得到更好的應(yīng)用。我們相信,我們構(gòu)想的服務(wù)模式會得到乘客們的認(rèn)可。
參考文獻(xiàn):
[1] 楊軍, 劉艷, 杜彥蕊. 關(guān)于二維碼的研究和應(yīng)用[J]. 應(yīng)用科技, 2002, 29(11):11-13.
[2] 黃吉蘭. 二維條碼QR Code編碼原理及實現(xiàn)[J]. 電腦知識與技術(shù):學(xué)術(shù)交流, 2013(12):2904-2908.
[3] 肖建國. 二維碼在計量工作中的應(yīng)用[J]. 山東工業(yè)技術(shù), 2015(7):275-275.
[4] 楊麗娟, 孫紅艷, 李瑛. RSA算法在QR碼防偽技術(shù)中的應(yīng)用[J]. 北華航天工業(yè)學(xué)院學(xué)報, 2014, 24(2):24-27.
[5] 殷國富, 賈有函. 產(chǎn)品自動識別的二維條碼技術(shù)[J]. 條碼與信息系統(tǒng), 1994(1):17-20.
[6] 方媛, 傅華明, FangYuan,等. 二維條碼加密算法的研究[J].電子技術(shù), 2009, 46(1).
[7] 錢恒. 二維條碼技術(shù)(續(xù)):具有便攜式數(shù)據(jù)庫美名的新型條碼[J]. 標(biāo)準(zhǔn).計量:質(zhì)量, 1999(12):15-17.
[8] 宋衛(wèi)海, 宋士銀. 二維條碼PDF417碼技術(shù)的應(yīng)用及發(fā)展前景[J]. 齊魯工業(yè)大學(xué)學(xué)報, 2001, 15(3):19-24.