1、使用Sqlcipher对数据库加密,并结合ORM框架LitePal进行使用。
2、对LitePal的使用我就不在讲解了,大家可以参考下面七篇博客:
http://blog.csdn.net/guolin_blog/article/details/38461239
http://blog.csdn.net/guolin_blog/article/details/38556989
http://blog.csdn.net/guolin_blog/article/details/39151617
http://blog.csdn.net/guolin_blog/article/details/39207945
http://blog.csdn.net/guolin_blog/article/details/39345833
http://blog.csdn.net/guolin_blog/article/details/40083685
http://blog.csdn.net/guolin_blog/article/details/40153833
3、对Sqlcipher的使用,大家可以参考我的博客:http://www.cnblogs.com/begin1949/p/4985883.html
4、本篇博客采用Android Studio开发。
5、第1,2,5部分为Sqlcipher相关的包和文件,第4部分为LitePal源码,第3部分为LitePal配置文件。不要忘记在AndroidManifest.xml中对LitePal框架进行配置。
6、对第4部分的LitePal源码进行修改(和数据库有关的类都要修改),将里面引用的类修改为对Sqlcipher框架中类的引用,主要包括SQLiteDatabase、Cursor。
即将
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
改为
import net.sqlcipher.Cursor;
import net.sqlcipher.database.SQLiteDatabase;
其他不用修改。
7、在Connector类中设置密码
8、在使用LitPal数据库之前一定要加上下面这句代码,进行初始化设置。
SQLiteDatabase.loadLibs(this);
9、接下来即可使用LitePal框架操作数据库了,和原来使用LitePal没有区别,这里不再过多介绍。
10、我们可以使用Root Explor来查看手机上面APP数据库是否已经成功加密,(手机一定要先Root过),加密成功会出现下面情况。数据在/data/data/应用包名/database目录下面。