SecurePreference的添加方法

来源:互联网 发布:java 写入word文档 编辑:程序博客网 时间:2024/06/05 05:25

Android开发中,SharedPreference用来保存一些信息在手机本地中,这些信息一般情况下都是非敏感信息,但是有时候为了方便和用户体验的考虑,会将一些较为隐私的信息也用SharedPreference保存。比如App的手势密码等等。而SharedPreference采用明文的方式将信息存放在“/data/data/应用程序包/shared_prefs”目录的.xml中(模拟器),开发中虽然会以MODE_PRIVATE方式保存(沙盒),但是对于root过的手机这并没有什么作用,可以很容易地被查看到存储的内容。下面介绍SecurePreference,并不是说用它就可以避免上述的问题,但是它的确能从一定程度上加强存储的安全性,下面会慢慢说到。


SecurePreference简介

SecurePreference是一个开源库,兼容Android2.1+系统,使用Apache2.0用户许可,因而可以用于商业开发。SecurePreference库实现了SharedPreference接口,因此,使用起来会很方便,如果项目中想加入它,之前的SharedPreference交互的代码都不需要更改。

SecurePreference使用相同的存储机制,但是键值对会被用AES对称密钥加密,在写到文件中去之前,加密后的键和值还会再进行一次base64编码。

在项目中加入SecurePreference

第一步,从Github地址中下载Zip包,并解压;

第二步,新建一个项目,将secure-preference-master/library/src/main/java/com/securepreferences/ 目录下面的SecurePreference.java文件复制到src(Eclipse)或者java目录下;
类似:
这里写图片描述

第三步,这时会发现SecurePreference.java文件中缺少AesCbcWithIntegrity类,google了一下发现这个也是开源库,于是和上面一样下载其Zip包并解压。Github地址;

第四步,将第三步解压目录下java-aes-crypto-master\aes-crypto\src\main\java\com\tozny\crypto\android\中的AesCbcWithIntegrity.java同样复制到刚才新建的项目中,类似这样:
这里写图片描述

第五步,新建一个测试类,来验证:
这里写图片描述

第六步,运行;
用Android Device Monitror查看模拟器中存放的sp文件:
这里写图片描述

可以看到在包名下面的shared_prefs目录下确实有我们刚刚执行后产生的sp.xml文件,导出后查看:
这里写图片描述

从sp.xml的内容中可以看到,程序里面保存的键值对(加密后)以base64编码方式存储,即使被查看到,也不知道它具体的作用,从一定程度上增加了本地存储的安全性。

SecurePreference的用法很简单,可以查看github内容,也可以参考这篇文章,还可以查看源码,这里不再做详细介绍。

0 0
原创粉丝点击