设为首页|加入收藏
你的当前位置为:首页 >> 学术研究 >
Android开发中的数据存储及其安全性分析
发布日期:2017-01-06 新闻来源: 正文字号
威海职业学院  梁海丽
 
数据是程序操作的对象,所有的应用中都会涉及到数据的存储,其安全性也显得尤为重要。在美国Verizon公司发布的《2015年度数据泄露调查报告》中称:2015年,全球61个国家出现79790起数据泄露事件,其中2122起已经得到确认。数据被泄漏到任何非授权方的事故即为数据泄露。这些数据泄露事件带来的后果是可怕而长期的。
数据安全得到越来越多关注,本文从软件开发的角度出发,以安卓系统为平台,从数据存储的角度分析数据安全性。在安卓应用开发中,数据存储主要有三种方式,一是使用偏好SharedPreferences存储;二是使用文件存储;三是使用数据库存储,下面将详细分析每种存储方式,以及存在的安全隐患,并给出合理的安全建议。
1 主要的数据存储方法
1.1使用偏好存储
使用偏好可存储少量数据,如应用程序的配置信息、程序过程产生的少量数据等,这类数据通常格式简单,如是否开启欢迎界面、用户名或密码等信息。SharedPreferences存储的是键值对,数据存储底层以xml文件存储,保存在/data/data/<应用包名>/shared_prefs目录之下。存储的主要代码如下: 
SharedPreferences  sp=getSharedPreferences("fileName",Context.MODE_PRIVATE);
Editor ed= mysp.edit();
ed.putInt("age", 12);
ed.commit();
1.2使用文件存储
1.2.1内部存储
安卓中的文件存储类似于Java的文件存储,通过Java提供的IO流即可实现数据的访问,默认读写的文件都存储在/data/data/<包名>/files的文件下。存储的主要代码如下:
FileOutputStream fos = Context.openFileOutput(“filename”,  Context.MODE_PRIVATE);
out.write(content.getBytes("UTF-8"));
out.close();
1.2.2外部存储
除了可以将文件存储在内部存储区外,还可以将软件存储到外部SD卡上,SD卡上可存储较大的文件,存储数据的主要代码如下:
if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){ 
File path=Environment.getExternalStorageDirectory();
FileOutputStream fo=new FileOutputStream(path.getCanonicalPath()+“filename”);
fo.write(content);
fo.close();}
读写SD卡时,需要在AndroidManifest.xml中,添加读写SD卡的相应权限。