吳丹 柴曉嶺 李昊遠(yuǎn) 劉文航



摘要:在超市、車站等人流量多的地方,存儲(chǔ)柜隨處可見,用于人們存取包裹,給人們生活帶來了便捷。但是,目前市場(chǎng)上大多數(shù)的存儲(chǔ)柜系統(tǒng)存在很大的安全隱患,造成了包裹的丟失和竊取。存取的驗(yàn)證信息通過加密生成的二維碼作為取包條件,能夠有效提高存儲(chǔ)柜系統(tǒng)的安全性。因此,文章就存儲(chǔ)柜的系統(tǒng)安全進(jìn)行研究。
關(guān)鍵詞:加密;二維碼;存儲(chǔ)柜;安全
在經(jīng)濟(jì)全球化的背景下,人們的生活水平逐漸趨于全面小康的狀態(tài),大家對(duì)生活質(zhì)量的要求越來越高。在此趨勢(shì)下車站、商場(chǎng)等為大家提供便利的場(chǎng)所也被建設(shè)得越來越完善,其中顧客隨身攜帶的包裹安全成為要解決的問題之一。二維碼技術(shù)方便快捷,在國際上發(fā)展迅速,廣泛應(yīng)用于社會(huì)生活的各個(gè)領(lǐng)域。因此,2005年被引入中國,且因我國IT技術(shù)以及電子商務(wù)的快速發(fā)展,推進(jìn)了二維碼的使用范圍。但目前主要被應(yīng)用于物流行業(yè)、購物二維碼支付等方面,二維碼存儲(chǔ)柜方面尚未有太多研究,所以其為我們開展了一個(gè)新的研究領(lǐng)域。
1 國內(nèi)系統(tǒng)現(xiàn)狀及二維碼系統(tǒng)特點(diǎn)
目前超市等地方存取包裹的主要方式有條形碼存取、一元硬幣存取和柜臺(tái)專人看管。其中條形碼存取存在條形碼丟失或損壞、包裹不安全以及紙質(zhì)碼環(huán)保問題;一元硬幣存取有硬幣攜帶不方便問題:柜臺(tái)專人看管更是容易造成顧客存取包裹混亂場(chǎng)面和包裹丟失的后果。
相比傳統(tǒng)的存儲(chǔ)柜系統(tǒng),加密二維碼系統(tǒng)有更多的優(yōu)點(diǎn)和市場(chǎng)前景。加密二維碼存儲(chǔ)柜系統(tǒng)特點(diǎn)如下:(1)安全性更高,加密技術(shù)可靠。(2)容錯(cuò)率高,維護(hù)性低,不必?fù)?dān)心條形碼的丟失或損壞。(3)與數(shù)據(jù)庫系統(tǒng)聯(lián)網(wǎng),二維碼僅限一次使用,具有時(shí)效性和實(shí)時(shí)性。(4)綠色環(huán)保,成本低,將二維碼圖片保存于客戶端,減少紙質(zhì)浪費(fèi)。
2 系統(tǒng)設(shè)計(jì)
加密二維碼存儲(chǔ)柜系統(tǒng)主要由軟件和硬件結(jié)合實(shí)現(xiàn)。
2.1軟件端
軟件端采用超文本預(yù)處理器( HypertextPreprocessor, PHP)和關(guān)系型數(shù)據(jù)庫管理系統(tǒng)MySQLc[1]技術(shù)實(shí)現(xiàn)二維碼的生成、驗(yàn)證以及數(shù)據(jù)庫信息的存儲(chǔ)功能。數(shù)據(jù)庫的嚴(yán)格的用戶權(quán)限管理和日志管理保證信息存儲(chǔ)的安全。
軟件端主要實(shí)現(xiàn)功能如下:二維碼的創(chuàng)建、二維碼的識(shí)別和驗(yàn)證、數(shù)據(jù)庫信息的存取。 在生成二維碼時(shí),應(yīng)用md5加密技術(shù)并采用特定規(guī)則寫入新的加密流程創(chuàng)建二維碼。根據(jù)時(shí)間、賬號(hào)信息,在PHP中調(diào)用substr()和md5()函數(shù)進(jìn)行處理,得到一個(gè)具有唯一性的十六進(jìn)制字符串并保存在MySQL數(shù)據(jù)庫里。加載phpqrcode類庫,根據(jù)此字符串生成二維碼圖片。
PHP加載QRreader類庫,根據(jù)用戶上傳的圖片進(jìn)行解析,識(shí)別出字符串。PHP將解析的字符串和從數(shù)據(jù)庫中的二維碼字符串進(jìn)行對(duì)比驗(yàn)證。
MySQL數(shù)據(jù)庫設(shè)計(jì)包括用戶權(quán)限和表的管理。qr是本次系統(tǒng)的數(shù)據(jù)庫。創(chuàng)建的用戶有qr_insert和qr_select,分別管理qr數(shù)據(jù)庫的插入和查詢。qr數(shù)據(jù)庫的表有l(wèi)ocker,storeinfo和user。locker主要存儲(chǔ)柜子的編號(hào)、位置以及存儲(chǔ)狀態(tài)等。storeinfo存儲(chǔ)已經(jīng)被存包的柜子編號(hào)、密文信息和存儲(chǔ)時(shí)間等。user用來存儲(chǔ)用戶信息。
系統(tǒng)頂層數(shù)據(jù)流如圖1所示。
2.2硬件端
硬件方面由柜體結(jié)構(gòu)和控制兩個(gè)部分組成。柜體結(jié)構(gòu)部分主要由底座、安全保護(hù)裝置和儲(chǔ)物柜等組成,實(shí)現(xiàn)快件的存儲(chǔ)和保護(hù)功能;控制部分由控制柜下位機(jī)控制系統(tǒng)和上位機(jī)控制系統(tǒng)組成,控制柜下位機(jī)控制系統(tǒng)用于實(shí)現(xiàn)物品的二維碼的掃描錄入、二維碼加密發(fā)送客戶、取件二維碼掃描等控制功能,上位機(jī)控制系統(tǒng)用于接收和存儲(chǔ)各柜箱的狀態(tài)信息等。
2.3軟硬件連接
軟硬件連接示意如圖2所示,系統(tǒng)使用超文本傳輸協(xié)議(Hyper Text Transfer Protocol,HTTP)進(jìn)行軟硬件的信息傳送。軟件端transfer頁面顯示數(shù)據(jù)庫locker的存儲(chǔ)狀態(tài)。硬件ESP8266 WiFi模塊通過HTTP協(xié)議構(gòu)造GET請(qǐng)求[2]得到頁面內(nèi)容,從而控制柜子的開關(guān)。
3 系統(tǒng)實(shí)現(xiàn)
當(dāng)用戶點(diǎn)擊“存”鍵時(shí),PHP后臺(tái)程序會(huì)自動(dòng)根據(jù)當(dāng)前時(shí)間地點(diǎn)以及用戶信息等生成一段序列碼。將此序列碼經(jīng)過md5以及特定加密規(guī)則,生成非對(duì)稱加密密文,使之不可逆,存入數(shù)據(jù)庫storeinfo表中并且生成二維碼發(fā)送給用戶手機(jī)界面。同時(shí)PHP connhardware界面分為兩部分,第一部分和數(shù)據(jù)庫對(duì)接,當(dāng)新數(shù)據(jù)添加時(shí)(用戶點(diǎn)擊觸發(fā)事件時(shí))返回給transfer界面顯示開鎖命令,通過實(shí)時(shí)和硬件端ESP8266WiFi模塊連接,以HTTP協(xié)議的GET傳輸方式傳到硬件端。當(dāng)用戶點(diǎn)擊“取”鍵時(shí),系統(tǒng)跳轉(zhuǎn)至二維碼上傳界面,用戶上傳之后PHP后臺(tái)進(jìn)行解析二維碼,得出加密后的密文與數(shù)據(jù)庫內(nèi)的qrinfo比對(duì),如果結(jié)果正確為真,根據(jù)箱柜號(hào)打開相應(yīng)柜子,同時(shí)刷新數(shù)據(jù)庫內(nèi)locker表的狀態(tài)屬性。
用戶存取流程如圖3所示,當(dāng)用戶按下頁面上的“存”鍵,系統(tǒng)生成二維碼發(fā)送給用戶,打開柜門,用戶此時(shí)可存包;當(dāng)用戶想要取包裹時(shí),按下“取”鍵,上傳二維碼圖片,系統(tǒng)識(shí)別并驗(yàn)證,驗(yàn)證成功則打開柜門,用戶此時(shí)可取包。
4 結(jié)語
本二維碼系統(tǒng)在一定程度上解決了存儲(chǔ)柜系統(tǒng)的安全問題,保證了信息的安全性,相比傳統(tǒng)存儲(chǔ)柜系統(tǒng)有了很大的改善。但系統(tǒng)在數(shù)據(jù)庫和PHP方面還需加大保密措施,進(jìn)一步完善。在軟硬件連接部分需對(duì)HTTP協(xié)議進(jìn)行進(jìn)一步的封裝來保證傳輸?shù)陌踩4鎯?chǔ)柜系統(tǒng)的安全一直是人們需要關(guān)注的問題,這將是值得我們不斷研究的方向。
[參考文獻(xiàn)]
[1]高洛峰細(xì)說PHP[M]北京:電子工業(yè)出版社,2012
[2]上野宣圖解HTTP[M]于均良,譯北京:人民郵電出版社,2014.