基于安卓系统的手机信息加密软件开发

2018-03-11 13:41宋伟奇卢志玲
广西教育·C版 2018年12期

宋伟奇 卢志玲

【摘 要】本文介绍安卓平台所具备的优势,简要说明目前常用的加密算法,从软件系统的框架设计、加密模块设计、解密模块的设计、软件数据库设计、加密软件工作流程设计等方面论述基于安卓系统的手机信息加密软件开发,为相关工作提供参考。

【关键词】安卓系统  手机信息  加密软件开发

【中图分类号】G  【文献标识码】A

【文章编号】0450-9889(2018)12C-0191-02

当前基于安卓系统的智能手机普及率极高,其方便快捷的特点使得更多的人愿意將各类信息储存在手机当中,但将手机与互联网连通后就会产生信息安全问题,这是目前智能手机行业最关注的问题之一。社会对手机信息安全问题的重视度越来越高,推动了手机信息技术加密软件的研发进程。

一、安卓系统的优势

安卓系统是由谷歌公司基于Linux平台所研发的开放性的手机操作系统,其不仅可以为系统开发提供免费的平台支持,而且安卓系统本身还集合了谷歌绝大多数的应用功能,例如Reader、Map等,使得其功能涵盖了日常生活的方方面面。同时安卓系统的可信度较高,并且在近几年的开发当中成熟度也在不断提升,加之其选择将平台开放,从而使得安卓系统内功能软件的可扩展性得到了极大的提升,目前该系统涉及的功能包括移动通信、多媒体视频、汽车、医药、监测、企业管理等,大大丰富了当前安卓系统智能手机的功能。

二、安卓系统常用加密算法概述

目前常用的加密算法可以被分为两大类:一是对称加密算法,二是不对称加密。对称加密算法指的是对数据进行加密的密钥和解密的密钥相同,这种加密算法的优点在于加密或解密操作时速率较快,且加密后强度较高,但其缺点在于加密信息的安全性绝对依赖于密钥,比较常见的算法如DES、AES等。非对称加密算法则指的是加密和解密操作时的密钥为完全不同当可以匹配的两个,通常将这两种密钥称为公钥、私钥,在进行加密操作时所使用的就是公钥,而开展解密操作时所使用的为私钥,比较常用的算法包括RSA、DSA等。当前安卓系统手机内所使用的密钥为56位,并且附加了8位的验证码,在设计时将明文组和密钥交替组成加密形式,从而提升信息加密的安全性,常见形式为3条连续56位加密和延长分组长度加密。

三、加密软件技术的概述

TelephonyManager是一种能够获取智能手机中SIM卡信息的技术,当用于并没有在SIM卡当中存储号码信息时,则对其进行阅读是通过IMSI码。该代码是国际移动端用户的识别码,其可以有效地对移动端的各类信息进行区分。该代码的总长度不超过15位,均采用0~9这10个数字进行编写,通常情况下在运营商的数据库当中保存着与手机号码向匹配的IMSI码的映射,因此安卓系统用户可以通过发送IMSI码来获得自己手机的号码信息。

SharedPreferences则是一种便携式的数据存储技术,其可以对简单的配置信息进行存储。例如当加密软件浏览根目录下文件的具体位置时,该存储技术只能显示文件所在的根目录位置,而不支持对其加密,修改可通过Editor技术来实现。但这种存储技术的优势在于不需要重新创建单独的数据库、列表等操作,因此更加快速和简单,但该存储技术无法对.int、.float等文件进行包含条件的查询操作。

Service是安卓系统中的服务器,其无法自主开启,但是在退出该程序后其并未完全结束,而是转为后台运行方式。此时加密软件就可以通过该系统获得收集运行的定时更新日志,而不需要每次在打开加密软件时重新进行获取,提升了加密功能的操作效率。

四、基于安卓系统的手机信息加密软件的开发

(一)软件系统的框架设计。当前在手机信息加密软件系统的框架设计中主要分为三个部分,分别是SD卡浏览模块、加密模块以及解密模块。当加密软件在运行时首先就需要SD卡浏览模块发挥作用,该模块中的ListView控制元件就能够将手机SD卡内的根目录进行显示,从而使目录下的所有文件或文件夹都能够被进行浏览和分辨。如果此时加密文件类别中文件图表的右侧显示了“锁”型标识,则说明该文件已经处于加密状态,如此时电击该文件则可将其转变为解密模块处理,并使其从加密模块目录下转移到解密模块目录当中,但依然会在控制元件模块下进行显示。

当SD卡浏览模块将手机中各种文件均显示在控制元件中时,如果其本身作为一个文件形式,则可以通过控制元件判断其是否处于加密状态,如果是在文件右侧会显示有“锁”的标识。在程序设计当中则是在文件序列开头写入固定长度的加密标识,例如“E”等,这样就可以使SD卡浏览模块对其进行分辨,从而保证文件状态显示的正确性。

(二)加密模块设计。加密模块中的加密算法选择可以从DES、DESeder或AES当中任选一种,在加密时还需要输入奇偶排列的密码,需连续输入两次正确后方可提供加密点击操作,其中第一次是密码输入,第二次为密码确认,当点击加密按钮后就可对所选择的文件信息进行加密操作。在该功能模块设计时需要解决两个问题:一是不同的加密算法当中所使用的密钥长度也不相同,需要根据选择的实际情况生成不同长度的密钥。可先采用switch语句对用户所选择的加密算法种类进行判断,然后再根据实际算法种类建立长度不一的数组,再借助While循环将用户所需要填写的密码更改为两次,两次所需要输入的数组必须完全一样才能够实现操作权限认可,最终利用SecretKeySpec函数根据加密算法的种类生成相应的密钥。二是当加密时需要根据某种算法来进行,而解密时是否需要根据原加密算法进行,这就要求软件加密功能是应添加记录加密算法的功能。如将加密算法中的三种方式分别用阿拉伯数字1~3来代替,则在加密操作时,需要将相应的算法数字加入到被加密的文件代码的开头,这是为了使SD卡浏览模块能够识别文件是否处于加密状态。在生成密钥后就需要创建一个新的文件,该文件名的后缀应为.lock,然后将密文加入到文件代码开头,以源文件读出二进制流,使加密后的代码能够写入文件中。在加密操作过程中则需要以加密算法的名称身长Cipher文件,并利用密钥初始化该文件。

(三)解密模块的设计。在手机界面当中点击已经处于加密状态的文件,就可以将其转变为解密状态,此时SD卡浏览模块就会对加密文件的开头代码进行读取,从而获得其加密算法的种类,然后由用户在解密界面当中输入相应的密码,从而产生密钥后对函数getKey进行自定义获得密钥,只要用户此时所输入的密码与加密时完全相同,则就可以获得相同的密钥对文件进行解密,在解密的过程中也需要创建Cipher文件,不过将初始化的过程转变为DECRYPTMODE,并将解码后获得的新文件写入到储存设备当中。

(四)軟件数据库设计。数据库是用以存储加密算法、密钥以及密码等信息的,其主要分为两个功能模块,一是对交互式密码的存储模块,二是对加密算法选择种类的存储模块。其中密码信息存储中包括用户的ID信息和密码信息两种,ID信息可取任何数据,但绝对不能为空白,同时其数据标当中仅且只能包含单一的数据;用户密码信息则选择为MD5码,不可去任意数值,但也不能为空白。加密算法选择种类存储信息中包括四项内容,分别是定制ID、信息名、保密状态以及加密方式,其中加密定制ID与用户ID不能完全相同,同样作为主键,其显示的是文件是否被加密、加密的方式以及加密文件本身的种类。

(五)加密软件工作流程设计。在用户使用加密软件时可运行三个工作模块,分别是策略定制、文件读取和文件写入。当用户在操作策略制定模块时,应先利用SD卡浏览功能模块确定该文件是否能够被开启加密功能,如果该文件无法被写入加密密钥,则该文件不受设计软件系统的保护,该软件就无法对这类文件进行加密操作。当判断之后表明该文件可以被软件加密后则进入文件读写工作,并同时开启软件内的读写监视模块。如此时加密模块属于自定义加密状态,则开启加密保护功能的同时可以对该自定义文件进行加密操作;如果此时为关闭加密状态,则对该自定义文件进行解密,并将读写监控关闭。

在阅读自定义文件时,如果该文件未开启加密保护功能,则不需要多余的操作,可直接将文件信息传导至应用操作层当中,进而直接对其进行浏览或阅读;如果该文件已经开启了加密功能,则在读取该文件前需要进行解密操作,在解密之后才能够将文件传导到应用操作层。相同的,在进行文件写入操作时如未开启加密保护,则可以直接进行写入;如开启则需要在解密后方可写入。

当前智能手机对于安卓系统下的加密软件需求量较大,在设计时可借助安卓平台的优势,以Java语言为基础,设计并实现可对文件加密的软件。其中所包含的功能模块共分为三种,即SD卡浏览模块、加密模块、解密模块,以SD卡浏览模块作为设计核心,由其判断文件是否能够被加密、是否处于加密状态等,然后再通过加密和解密模块对文件实现操作。

【参考文献】

[1]刘云龙,吕韬,曾晋,等.基于android手机的加密QR二维码识别系统[J].软件,2012(4)

[2]张旻,李明,李政,等.基于声纹的Android手机访问控制及文件加密系统[J].信息网络安全,2013(4)

[3]申晋祥,鲍美英,张琦.Android手机系统中的短消息加密研究与实现[J].山西大同大学学报(自然科学版),2016(3)

[4]袁方.基于Android平台的手机混沌加密系统的设计与实现[D].杭州:杭州电子科技大学,2013

[5]浩明.基于安卓系统的手机防盗取证系统[J].实验室研究与探索,2014(9)

[6]马浩天.关于Java语言的手机软件开发技术[J].新媒体研究,2015(20)

[7]冯益斌.基于Android系统及混合加密的蓝牙远程控制研究[J].现代电子技术,2016(5)

[8]李欣.基于Android智能手机的彩信加密与传输机制研究[J].移动信息,2015(8)

[9]黎妹红,李论,张大伟,等.基于SDKEY的安卓手机安全传输技术[J].解放军理工大学学报自然科学版,2015(2)

[10]朱江.基于Android平台的个人隐私保护软件的设计与实现[D].大连:大连理工大学,2014