[DB那些事]数据库加密

本文介绍了如何使用SqlCipher对sqlite3数据库进行整体加密,重点讨论了在Android中集成SqlCipher的过程,包括处理与ORM框架Ormlite的兼容问题。通过手动修改ormlite-android的源代码,实现了将android.database.sqlite替换为net.sqlcipher.sqlite,从而成功集成SqlCipher。文章还提供了在Android Studio中创建库模块并修改源码的步骤,并提到代码已上传至GitHub。
摘要由CSDN通过智能技术生成

说到数据库加密,目前最好且唯一的方案就是SqlCipher对sqlite3整体加密,微信也用的它。开源,且支持很多平台。

单就Android来说,集成不算太麻烦,1个jar包,3个so库,1个zip。

jar包中基本上重写了android.database.sqlite包中所有的类,全部替换成了net.sqlcipher.sqlite包。why?因为sqlcipher加密后,需要密码才能打开该数据库。所以它把所有的都重写了一遍,这是一个坑,一会Stay再来说明。

整体来说sqlcipher还是比较好用的,封装好了跟正常操作数据库的方式一样,只是在getWritableDatabase()时要多传个password参数。

sqlcipher在性能上没有太大的损失,而且在移动端数据量不是很大,基本可以忽略不计了。

现在坑来了,假如你之前用的是数据库框架,而不是使用原生的方式,那么集成起来还有些麻烦。当然如果用的对象型数据库,那跟sqlcipher就一点关系都没有了。我们这里只说,如果以前用的是基于sqlite的数据库框架集成sqlcipher。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值