吴丹 柴晓岭 李昊远 刘文航
摘要:在超市、车站等人流量多的地方,存储柜随处可见,用于人们存取包裹,给人们生活带来了便捷。但是,目前市场上大多数的存储柜系统存在很大的安全隐患,造成了包裹的丢失和窃取。存取的验证信息通过加密生成的二维码作为取包条件,能够有效提高存储柜系统的安全性。因此,文章就存储柜的系统安全进行研究。
关键词:加密;二维码;存储柜;安全
在经济全球化的背景下,人们的生活水平逐渐趋于全面小康的状态,大家对生活质量的要求越来越高。在此趋势下车站、商场等为大家提供便利的场所也被建设得越来越完善,其中顾客随身携带的包裹安全成为要解决的问题之一。二维码技术方便快捷,在国际上发展迅速,广泛应用于社会生活的各个领域。因此,2005年被引入中国,且因我国IT技术以及电子商务的快速发展,推进了二维码的使用范围。但目前主要被应用于物流行业、购物二维码支付等方面,二维码存储柜方面尚未有太多研究,所以其为我们开展了一个新的研究领域。
1 国内系统现状及二维码系统特点
目前超市等地方存取包裹的主要方式有条形码存取、一元硬币存取和柜台专人看管。其中条形码存取存在条形码丢失或损坏、包裹不安全以及纸质码环保问题;一元硬币存取有硬币携带不方便问题:柜台专人看管更是容易造成顾客存取包裹混乱场面和包裹丢失的后果。
相比传统的存储柜系统,加密二维码系统有更多的优点和市场前景。加密二维码存储柜系统特点如下:(1)安全性更高,加密技术可靠。(2)容错率高,维护性低,不必担心条形码的丢失或损坏。(3)与数据库系统联网,二维码仅限一次使用,具有时效性和实时性。(4)绿色环保,成本低,将二维码图片保存于客户端,减少纸质浪费。
2 系统设计
加密二维码存储柜系统主要由软件和硬件结合实现。
2.1软件端
软件端采用超文本预处理器( HypertextPreprocessor, PHP)和关系型数据库管理系统MySQLc[1]技术实现二维码的生成、验证以及数据库信息的存储功能。数据库的严格的用户权限管理和日志管理保证信息存储的安全。
软件端主要实现功能如下:二维码的创建、二维码的识别和验证、数据库信息的存取。 在生成二维码时,应用md5加密技术并采用特定规则写入新的加密流程创建二维码。根据时间、账号信息,在PHP中调用substr()和md5()函数进行处理,得到一个具有唯一性的十六进制字符串并保存在MySQL数据库里。加载phpqrcode类库,根据此字符串生成二维码图片。
PHP加载QRreader类库,根据用户上传的图片进行解析,识别出字符串。PHP将解析的字符串和从数据库中的二维码字符串进行对比验证。
MySQL数据库设计包括用户权限和表的管理。qr是本次系统的数据库。创建的用户有qr_insert和qr_select,分别管理qr数据库的插入和查询。qr数据库的表有locker,storeinfo和user。locker主要存储柜子的编号、位置以及存储状态等。storeinfo存储已经被存包的柜子编号、密文信息和存储时间等。user用来存储用户信息。
系统顶层数据流如图1所示。
2.2硬件端
硬件方面由柜体结构和控制两个部分组成。柜体结构部分主要由底座、安全保护装置和储物柜等组成,实现快件的存储和保护功能;控制部分由控制柜下位机控制系统和上位机控制系统组成,控制柜下位机控制系统用于实现物品的二维码的扫描录入、二维码加密发送客户、取件二维码扫描等控制功能,上位机控制系统用于接收和存储各柜箱的状态信息等。
2.3软硬件连接
软硬件连接示意如图2所示,系统使用超文本传输协议(Hyper Text Transfer Protocol,HTTP)进行软硬件的信息传送。软件端transfer页面显示数据库locker的存储状态。硬件ESP8266 WiFi模块通过HTTP协议构造GET请求[2]得到页面内容,从而控制柜子的开关。
3 系统实现
当用户点击“存”键时,PHP后台程序会自动根据当前时间地点以及用户信息等生成一段序列码。将此序列码经过md5以及特定加密规则,生成非对称加密密文,使之不可逆,存入数据库storeinfo表中并且生成二维码发送给用户手机界面。同时PHP connhardware界面分为两部分,第一部分和数据库对接,当新数据添加时(用户点击触发事件时)返回给transfer界面显示开锁命令,通过实时和硬件端ESP8266WiFi模块连接,以HTTP协议的GET传输方式传到硬件端。当用户点击“取”键时,系统跳转至二维码上传界面,用户上传之后PHP后台进行解析二维码,得出加密后的密文与数据库内的qrinfo比对,如果结果正确为真,根据箱柜号打开相应柜子,同时刷新数据库内locker表的状态属性。
用户存取流程如图3所示,当用户按下页面上的“存”键,系统生成二维码发送给用户,打开柜门,用户此时可存包;当用户想要取包裹时,按下“取”键,上传二维码图片,系统识别并验证,验证成功则打开柜门,用户此时可取包。
4 结语
本二維码系统在一定程度上解决了存储柜系统的安全问题,保证了信息的安全性,相比传统存储柜系统有了很大的改善。但系统在数据库和PHP方面还需加大保密措施,进一步完善。在软硬件连接部分需对HTTP协议进行进一步的封装来保证传输的安全。存储柜系统的安全一直是人们需要关注的问题,这将是值得我们不断研究的方向。
[参考文献]
[1]高洛峰细说PHP[M]北京:电子工业出版社,2012
[2]上野宣图解HTTP[M]于均良,译北京:人民邮电出版社,2014.