在云环境下基于MD5加密验证技术图片上传方法研究
2018-04-02梁绍宇李拥军
梁绍宇,李拥军
(1.广州华商职业学院,广州 510300;2.华南理工大学,广州 510006)
0 引言
目前,随着连锁品牌经营产业链不断深入发展,门店在全国各地不断地涌现。门店自主经营的规范性、合理性越来越难管理。连锁品牌发展扩张受到了一定的制约。虽然有很多门店巡查人员去各地门店巡查,但是企业管理人员也很难了解到真实的情况。为此我们提出了一个在云环境下基于MD5加密[1]技术预上传照片,等具备网络条件后再上传的系统。系统预先通过GPS定位[2],确认需要拍照的门店。把门店的相关信息提取出来。在拍照的时候,添加为图片的水印。同时,也计算出该照片的MD5值,并预上传到云服务器。等待具备网络上传的条件时,再上传照片。如上传照片的MD5值与预上传的不符,则终止该照片非法上传。以此真实地记录了拍照的时间、地点、图片的真实性。为企业管理人员了解各门店真实情况起到了很好帮助作用。
1 云系统总体技术架构设计
云系统[3]按照“平台+应用”的架构设计思想,整个系统分为三个层:视图层、业务处理层、数据缓存层、数据处理持久层(数据缓存层、数据持久层)。系统图如图1所示。
图1 系统总体架构设计图
1.1 视图层
主要用户的操作界面,基于HBuilder+HTML5技术来实现。
1.2 业务处理层
负责各种具体业务的逻辑处理,基于Java编程语句,Restful风格的中间件提供服务。
负责所有业务的服务,包括统一用户管理、数据交换构件等公共服务。业务处理层针对规范化各类应用,通过Restful架构设计,提高应用系统建设的效率,提高系统的健壮、开放、扩展的基础架构,快速构建上层应用。
1.3 数据处理层
数据处理层分为数据缓存层层和数据持久层。
数据缓存层主要是缓存业务处理层的数据,使用Ehcache、Redis[4]等缓存技术,主要是服务于查询频率高且修改少和临时存储的数据,提高业务处理能力、降低响应时间。
数据持久层[5]主要是存储业务数据,使用目前最流行的MySQL或Oracle对数据的存储。
2 系统部署架构设计
部署在互联网上的系统,使用的Web服务器、应用服务器使用云平台进行部署,所使用的数据库服务器,统一使用数据库集群服务器[6]。
图2 系统部署架构
3 图片上传系统实施方法
图片上传设计方法是通过打开手机GPS定位系统,提出xi、yi、zi三个参数值,调用地图公共信息接口,根据地图查找定位,然后根据查找到的定位信息查询数据库中附近门店,进行拍照。提取系统中的时间与地点信息值。生成特有的图片水印信息,提取图片的MD5值,预先上传至云服务器。如网络条件具备的情况下,再上传图片,比较两者的MD5值,如果相同,则上传成功,否则上传失败,终止上传。流程图如图3所示。
图3 系统流程图
在该系统中巧妙的运用了MD5值的唯一性识别图片。检查图片是否存在修改伪造的情况。同时系统也采用了目录的数据结构算法,在大量的MD5值中,能快速地查找出来准确的数据,查询时间复杂度大大地降低。
3.1 GPS定位调用地图接口信息
地图定位SDK是为移动端应用提供的一套简单易用的定位服务接口,专注于为广大开发者提供最好的综合定位服务。通过使用定位SDK,开发者可以轻松为应用程序实现智能、精准、高效的定位功能。
3.2 搜索附近门店及生成水印
云服务器后台数据库存储着全国各地门店的相关信息。(门店名称、门店地址、店长、联系人电话等)。手机通过GPS定位,模糊查找出附近门店的定位信息,提取特征关键词模糊查询系统后台数据库,提取附近门店相关信息。同时提取手机当前系统时间。在拍照的时候形成相关信息记录在照片中。也利用照片中的这些特殊的信息生成MD5值,预上传至服务器存储。
3.3 MD 5值的比较
由于数据访问量比较大,本系统采用了一种匹配算法[7]。在系统中设计了一套计算与比较快速查询MD5匹配值遍历算法。当需要上传照片的时候,首先计算当前图片的MD5值,再进行上传至云服务器。在云服务器中以4位为一个储存单元,存储着MD5值。MD5值链表头形成单链表(目录)。在遍历过程中查找到匹配数据后,再逐位比对MD5值。如完全相同,则允许图片上传至云服务器系统中。如图4所示。
图4 数值存储与查找算法
4 运行数据分析
4.1 根据特征信息生成水印
系统根据数据库提取出特征信息,包括:门店名称、地址、巡查人电话、拍照时间等相关信息。形成图片水印。记录在图片上,防止图片修改。如图5所示。
图5 特征信息提取水印效果图
4.2 拍照提取特征信息形成MD 5
抽取系统中某图片,使用工具测试计算其MD5值。通过对特征信息计算,形成128位MD5值。通过系统上传存储在云服务器中,等待图片上传时候再计算MD5值进行校验。如图6所示。
图6 MD5值计算提取
4.3 拒绝非法照片上传
从系统后台导出最近这一周系统图片上传数据进行分析,MD5非法修改图片导致无法上传。红色为上传失败数据,蓝色为上传成功数据。如图7所示。
图7 上传数据后台运行统计分析
上传图片因各种原因拦截,期中蓝色为MD5值不符而遭到数据系统拦截。如图8所示。
数据上传总量,与拒绝比值图例,如图9所示。
图8 上传数据后台系统拦截分析
图9 上传总量与拒绝比值
参考文献:
[1]Chao Wang,Ai-Ling Li,Yu Pang,Ying-Qing Lei,Ling Yu.Changes in Intraocular Pressure and Central Corneal Thickness During Pregnancy:a Systematic Review and Meta-Analysis[J].International Journal of Ophthalmology.Vol.10,No.10,Oct.18,2017.
[2]田英国,郝金明,陈明剑,于合理,衡培深.GPS卫星钟差及观测数据采样间隔对LEO卫星定轨精度影响[J].武汉大学学报(信息科学版).Vol.42,NO.12,Dev.2017.
[3]沈尧,秦小麟,鲍芝峰.一种云环境中数据流的高效多目标调度方法[J].软件学报,2017,28(3):579-597.
[4]刘俊龙,刘光明,张黛,喻杰.基于Redis的海量互联网小文件实时存储与索引策略研究[J].计算机研究与发展,2015,S2(52),148-154.
[5]梁弼.一种简捷的数据持久层解决方案.现代电子技术[J],Vol.39,No.14.Jul,2016.
[6]徐小龙,龚培培.面向云端融合计算的防御性数据销毁机制[J].北京理工大学学报.Vol 73 NO.3,Mar 2017
[7]邹志文,李桥,王政辉,费洪哲.基于订阅划分的多维索引并行匹配算法[J].华中科技大学学报(自然科学版),VOL.41,SUPII,Dec 2013.