APP下载

基于二维码的物流小助手

2016-05-19周玉岩陈晓颜骁

电脑知识与技术 2016年8期
关键词:信息泄露短信二维码

周玉岩+陈晓+颜骁

摘要:随着电子商务的发展,快递单号信息泄露的问题受到众多关注。针对这个问题,该文利用二维码存储量丰富的特点,把以往的明文信息经过ECC加密算法对不同运输管理角色进行分段加密,使得每个部门分开独立获取信息,避免一个人可以获取过多信息的问题。在发送上,通过手机端设置预发送短信信息,在扫描二维码时获取用户信息,最后将两者结合拼凑出完整的发送信息。用户通过二维码与面单上的二维码进行匹配验证认领货物,达到安全防护的目的;通过时效性检验手段,减少快递单号倒卖情况的发生;利用自我设计的加密规则进一步减少信息泄露。

关键词:信息泄露;二维码;短信;加密

中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2016)08-0282-03

1 引言

随着国内电子商务突飞猛进的发展和电商模式的日益完善,网络购物逐渐成为广大消费者的重要购物方式,从而使得快递行业顺其自然地得到了蓬勃发展。但是与此同时,网络购物者们也面对着快递单号信息被大面积泄露,甚至衍生出多个专门交易快递单号信息的网站等诸多信息安全问题。

在实际生活中,快递公司拥有的用户信息包括收货和发货双方的姓名、地址、手机号码以及快递物品。这些信息存在于两种形式,一是保存在快递公司的服务器中,一种是快递单。这两种形式的用户信息都容易被泄露,从而被大量应用到网上商店制造假信誉和假包裹等欺诈违法的行为当中。

本文主要是针对信息的发送和封装进行处理,防止快递人员泄露信息,以及广大用户对自己收到快递后,对面单的不正常处理导致的信息泄露问题进行处理。

2 软件需求分析和系统设计

针对当前物流人员需要发送大量信息的现状,“基于二维码的物流小助手”对不同联系人建立分组,并且支持短信搜索操作,帮助物流工作人员尽快找到自己需要的信息。在群组模块可以建立紧急事务组,把紧急事务添加到其中,达到时刻提醒自己的目的。为了进一步优化软件的人机体验效果,本软件支持手势识别,根据用户的不同手势进行不同的操作。在业务上,针对二维码存储量丰富的特点,对业务信息进行分段封装,从而达到保护用户信息的目的。用户可以通过设置模块设置属于自己的专属个性主题,尤其是短信设置模块,可以更好的帮助物流工作者加快完成派送任务。

系统主要分为消息、二维码(QR)、分组和设置四个模块。具体功能设计如图1所示:

项目整体功能图描述的是整个项目的运作方式,以及本款软件在物流运输这个行业中所起到的作用。具体业务如图2所示:

(1) 消息模块。进入软件首先是消息界面,通过消息界面可进行消息的选择,选择查看全部消息、收件箱、发件箱、草稿箱,也可以选择进行消息创建和消息搜索。

(2) 二维码(QR)模块。该模块主要分为二维码和条形码扫描。当设置界面没有进行设置的时候,执行条形码扫描功能,会自动跳转到消息发送界面,进行发送消息输入操作,当输入完毕时即可发送消息。

(3) 分组模块。可以针对派送员手机中数量众多的短信进行分类处理。将家人、朋友等亲友短信分别建立群组,分别收藏管理,从而达到便于查找,高效工作生活的目的。

(4) 设置模块。对该模块进行设置之后,扫描货物二维码,消息会自动获取预先设置的消息内容与货物订单信息进行整合并且自动发消息。另外,随着智能手机的发展,软件变得越来越丰富多彩,人机交互UI也变得更加人性化。更多的主题、字体供用户选择,为此用户的手机也彰显得更加个性化,更加适应用户的操作。针对这个特点,单独把手机软件设置作为一个模块,目的就是为了让用户更加熟练地使用软件,也爱上这款软件,张扬自我个性。

3 系统软件编程

SQLite是一款轻型的数据库,是遵守ACID(原子性、一致性、隔离性、持久性)的关联式数据库管理系统,多用于嵌入式开发中。

针对Android短信,系统一般做一个限制,规定Android手机只能存储一定量的短信。“基于二维码的物流小助手”所使用的短信数据库表做如下解析:

短信应用开发本身属于系统源码级别开发,Google并没有给予API支持,因此开发者们需要去查看Google提供的源码。清单文件中的manifest标签的package属性指出了android短信数据库所在的位置。Application的子标签provider指出了短信、彩信、短信和彩信三种方式的查询数据方式。

根据清单文件中provider的提示找到短信的provider,可以发现SmsProvider继承了ContentProvider。当应用程序里面的类有继承实现ContentProvider这个抽象类,并重写该类用于向外界提供的增、删、改、查四种方法时,该类就可以向外界提供统一的数据共享方式,这样做便于简化编程,降低程序的耦合度。

针对某一条短信进行查询需要设定短信的id,Google提供了两种方式:通过Uri类的withAppendedPath(baseUri, pathSegment方法在路径上添加id;通过ContentUris类的withAppendedId(uri, id)方法为路径上添加一个id,拼凑出完整的查询路径。此外ContentUris类还提供parseId(uri)方法,用于获取uri的id。

另外,Google提供了ContentObserver类,用于实时监听Android数据库的内容变化。软件实时性响应要求数据库底层一旦发生变化就要通知用户界面更新。针对这个问题可以通过使用getContentResolver().notifyChange(uri, null)方法来通知注册在此Uri的上ContentProvider;还可以通过Cursor对象本身setNotificationUri(getContext().getContentResolver(), uri)通知顶层界面进行布局的重新加载。

此外,Android不允许在UI界面直接访问数据库或者访问网络,否则就会产生ANR异常。针对这个问题只需要另外开启一个线程即可。在java中可以使用thread类来实现,在Android中同理也可以实现,但是UI界面只能在UI线程或者主线程中更新,这就需要handler机制来解决问题或者使用runOnUiThread(action)实现。

在本系统中,短信查询需要涉及数据库查询以及UI界面操作,针对这个问题和因短信数据查询量过大导致ANR异常问题。本系统采用QueryHandler类的startQuery方法进行异步查询,此方法在查询结束时会调用onQueryComplete方法,在本应用中,短信数据库回话查询就采用这种方式。

4 软件功能的实现

短信功能,短信功能模块是针对当前琳琅满目的短信软件进行优化整合而得到的模块。该模块一改以往短信只是显示短信回话的单一,点击右上角的箭头可选择收件箱、已发送信箱以及草稿信息等不同功能。在此基础上添加通知类消息的功能,针对10086等通知类短信进行归类分档,这样做可以使用户更快地找到自己所需的短信。添加搜索模块,通过短信搜索功能可以更加高效的查找自己所需要的短信,在新建短信时,通过输入部分电话号码或者用户名可以帮助快速定位到查找的用户。设置批量化删除的功能,可以完成大量短信删除的繁琐任务,并且在此模块进行了友好的提示,防止用户误删除重要信息。

二维码查询功能,进入二维码查询模块,把手机摄像头对准制作好的特定二维码,进行拍摄,拍摄成功将在界面展示二维码,并有震动和蜂鸣提示。

群组功能,该功能主要是进一步实现短信的管理。针对短信多,不舍得删除宝贵短信的用户来说尤为重要,通过群组设置,把不同的人群划分到不同的群组当中去,便于以后快捷查找,同时也可以使用群组功能临时存放一些特殊的用户信息。

设置功能,在设置界面设置预置短信,手机将自动进行发送短信功能,很好的节省了记录信息以及拨打发送短信的时间。同时用户可以根据自我审美观调整整个软件,让用户更加适应软件的使用。

5 结论

在物流行业迅速发展的今天,信息安全变得越来越重要。针对快递信息泄露的问题,本文对信息的发送和封装进行处理,通过ECC加密算法对明文信息进行分段加密,使每个部门只能获取所需要的部分信息;然后通过手机端设置预发送短信信息,在扫描二维码时获取用户信息;最后将两者结合拼凑出完整的发送信息。“基于二维码的物流小助手”的实现可以帮助广大用户更好地保护自己的个人信息;帮助物流工作者更加便捷的更新快递信息,更好的组织短信消息,节省大量的时间;帮助广大使用者减少因快递信息泄露而带来的财产损失等问题。

参考文献:

[1] 李刚.疯狂Android讲义(第2版)[M].北京:电子工业出版社,2013.

[2] 林学森.深入理解Android内核设计思想[M].北京:人民邮电出版社,2014.

[3] 迈耶.Android 4 高级编程(第3版)[M].北京:清华大学出版社,2013.

[4] 罗升阳.Android系统源代码情景分析[M].北京:电子工业出版社,2012.

[5] 吴亚峰,于复兴,杜化美.Android应用案例开发大全[M].北京:人民邮电出版社,2013.

[6] 杨文志.Google Android程序设计指南[M].北京:电子工业出版社,2009.

猜你喜欢

信息泄露短信二维码
二维码
道歉短信
代发短信
让严肃的二维码呆萌起来
二维码,别想一扫了之
“八一”节日短信之一