SQLCipher使用方法

最近,在搞省市数据库的时候,想从别人的包里面直接把db弄出来,哪知道一个个都是打不开的,遂想到他们是不是搞了加密。

在网上看到了很多数据库加密的方法,但是还是直接拿来主义最方便,什么都不需要自己做,我推荐SQLCipher。

SQLCipher使用起来很简单,github上面的地址是https://github.com/sqlcipher/android-database-sqlcipher,如果你有兴趣,可以直接自己编译出最新版本的so库以及jar,我这边直接用了这个地址下载https://s3.amazonaws.com/sqlcipher/SQLCipher+for+Android+v2.2.2.zip

自己建一个项目,把压缩包中相关内容复制进去,看下目录结构,缺一不可


然后我们来看下github里面的demo中的代码,就2个类而已

EventDataSQLHelper.java

SQLCipher使用方法_第1张图片

这个就是直接继承于类似android原生的SQLiteOpenHelper的类,只不过是sqlcipher的而已,但是用起来都是一样的,都是onCreate onUpgrade之类的


重点来了,我们看存文件跟取文件的类 SQLDemoActivity.java


SQLCipher使用方法_第2张图片

首先要SQLiteDatabase.loadLibs(this);这个是调用底层jni,为后续加密方法调用铺路。

这边是用密码构建写数据库的对象SQLiteDatabase db = eventsData.getWritableDatabase(password);因为马上就开始用addEvent方法写了嘛

写完之后关闭数据库,随即开始读了eventsData.getReadableDatabase(password);

这边还有一个问题,就是不知道从为什么要关闭这个SQLiteDatabase对象,我把这句话去掉好像也没什么影响

搞完之后测试一下,用rootExplorer看下,成功了



你可能感兴趣的:(SQLCipher使用方法)