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内容,也可以参考这篇文章,还可以查看源码,这里不再做详细介绍。
- SecurePreference的添加方法
- ToolTip的添加方法
- CSS的添加方法
- 添加UISearchBar的方法
- 添加UISearchBar的方法
- 添加gitignore的方法
- 添加约束的方法:
- 添加CSS的方法
- 添加表格的方法
- 添加XML记录的方法
- vs2003中參考的添加方法
- tomcat添加虚拟目录的方法
- ORACLE9I数据库的添加方法
- 添加右键菜单的方法
- DataTable添加行的方法
- 动态添加SiteMapPath的方法
- apache添加虚拟目录的方法
- 添加外部控件的方法
- 为什么HTML5移动应用程序名声不好?
- mysql 创建用户和密码提示失败
- 10: const 常量
- POJ 1279 Art Gallery (半平面交求面积)
- 从零开始快速搭建Android应用自动化测试(一)
- SecurePreference的添加方法
- NETCTOSS03_登陆模块
- C语言二维数组
- Spring整合LogBack
- html5语义化标签
- String,StringBuffer与StringBuilder的区别??
- JAVA的StringBuffer类
- NSString* testObject = [[NSData alloc] init];testObject 在编译时和运行时分别是什么类型的对象?
- 1861: [Zjoi2006]Book 书架