个人博客迁移,欢迎光临
今天介绍一个在之前公司用到的技术(发现文章一直在草稿箱里没发,今天发了),觉得还不错,分享出来。
在android开发中有时候需要对数据库进行加密处理,不管这个数据库是我们程序自己创建的还是我们自己从外部导入的已经存在的数据库,我们都有可能需要对它进行加密。
加密方式无非两种,一种是对读写的内容进行加密,另一种就是对数据库整个文件进行加密。第一种方式就非常多了,这里不做介绍,今天主要介绍第二种方式——利用sqlcipher对Android的sqlite数据库进行加密。
1、导入如图中的3个jar文件和3个so文件(在附件代码里有提供)
2、对于我们自己创建的数据库,只要在创建的时候加入创建的密码即可,第二个参数即为密码
mDataBase = SQLiteDatabase.openOrCreateDatabase(databaseFile, mKey, null);
3、要如何修改刚刚创建的加密数据库,方法也很简单,只需执行如下两行代码即可
mDataBase.execSQL("PRAGMA key='" + oldpwd + "'");
mDataBase.execSQL("PRAGMA rekey='" + newpwd + "'");
设置完新密码后对数据库的操作如果出现错误极有可能是密码有误的原因。