Android自己自带有不加密的数据库SQLite,若是要保存密码之类的敏感数据在本地的话方法一是使用字段加密解密算法,方法二是整个数据库都加密掉。若是只是加密解密某个字段(如password)就推荐使用第一种方法,轻便易用;若是想要整个数据库都加密的话,就推荐方法二了,使用其余的数据库SQLite,如SQLCipher,其是实现加密了的SQLite数据库,使用方法与Android自带的大部分同样,就须要注意如下步骤,不然加密不成功。因为本人使用的是Win平台,对于SQLCipher的编译什么的就懒得去弄了,直接使用其二进制包了。android
这里讲的是SQLCipher for Android v2.2.2版本,使用的是AES加密,本人经过本身的探索和文章参考总结出来一下步骤和注意事项。git
git clone https://github.com/sqlcipher/android-database-sqlcipher.git
二进制文件:SQLCipher For Androidgithub
import net.sqlcipher.database.SQLiteDatabase;
SQLiteDatabase.loadLibs(this);//涉及到数据库必须使用并且须要先声明才能执行如下实例化的数据库
/*fragment use this:
*SQLiteDatabase.loadLibs(getActivity());//涉及到数据库必须使用并且须要先声明才能执行如下实例化的数据库
*/
关于SQLCipher的编译,可参考:算法
一、为跨平台数据库引擎 SQLite 实现加密扩展 https://sites.google.com/site/notegainexp/sqlite/weikuapingtaishujukuyinqingsqliteshixianjiamikuozhansql
二、SQLite加密--SQLCipher http://stormzhang.github.io/blog/2013/06/16/sqlite-encrypt/数据库