greenDAO的使用详解---(4)greenDAO3.2.2结合sqlcipher加密数据库
来源:互联网 发布:小埋同款披风淘宝 编辑:程序博客网 时间:2024/06/01 07:40
greenDAO的使用详解—(4)greenDAO3.2.2结合sqlcipher加密数据库
1.SQLCipher介绍
SQLCipher是一个在SQLite基础之上进行扩展的开源数据库,它主要是在SQLite的基础之上增加了数据加密功能,如果我们在项目中使用它来存储数据的话,就可以大大提高程序的安全性。SQLCipher支持很多种不同的平台,这里仅介绍Android中SQLCipher在greenDAO3.2.2的用法。
2.使用greenDAO3.2.2结合sqlcipher加密数据库说明
greenDAO从3.0.0版本开始就支持sqlcipher
3.加密数据库的使用
在我们做全局初始化的时候,如果不做加密,调用getWritableDatabase()方法获取未加密的SQLiteDatabase,如果我们需要做加密,只需要调getEncryptedWritableDb()方法获取加密的Database就可以,当我们只修改这一处时候,运行会发现报以下错误:
原因:greenDAO3.2.2中没有引入sqlcipher加密库,我们需要在自己的工程中引入该库
至此,我们加密数据库已经完成,是不是很简单。
4.源码查看分析
- 通过查看getEncryptedWritableDb()方法的源码我们发现,getEncryptedWritableDb()方法是通过EncryptedHelper类获取的Database,而EncryptedHelper类是集成net.sqlcipher.database.SQLiteOpenHelper(该类由sqlcipher库提供),所以我们的要使用加密数据库,必须依赖sqlcipher库。
- 通过跟踪DevOpenHelper类的onUpgrade()方法,我们发现,我们做数据库升级的时候,最终调用的是DatabaseOpenHelper类的onUpgrade()方法,但是该类中的onUpgrade()方法体中没有任何代码,升级方法留给子类
而我们做加密数据库升级的时候,onUpgrade()方法是在EncryptedHelper中调用
因此在升级方法中获取到的Database 是已经解密的,然后交给MigrationHelper做数据转移。
5.代码下载地址
源码下载,请点击这里
阅读全文
0 0
- greenDAO的使用详解---(4)greenDAO3.2.2结合sqlcipher加密数据库
- greenDAO的使用详解---(2)greenDAO3.2.2数据库的升级
- 基于Sqlcipher和GreenDao的数据库加密
- greenDAO的使用详解---(3)greenDAO3.2.2数据库的升级bug解决
- 结合SQLCipher的LKDBHelper数据库加密
- Android数据库GreenDAO3.2.2的使用(三,GreenDao操作外部数据库----操作.db数据库)
- Android SQLCipher数据库加密 详解
- 使用SQLCipher对数据库加密
- 如何使用SQLCipher给FMDB的数据库加密?
- GreenDao 2.2 数据库加密
- 正确使用SQLCipher来加密Android数据库
- 正确使用SQLCipher来加密Android数据库
- android 加密数据库android-database-sqlcipher使用
- LitePal结合SQLCipher实现DB数据库操作和加密
- sqlcipher 加密解密工具使用详解
- SqlCipher在Android上数据库的加密
- Android数据库--Sqlcipher的使用
- sqlcipher加密数据库
- template js javascript模板引擎
- 面向对象--instanceof
- javascrip笔记
- mysql如何让自增id从1开始设置方法
- Windows远程桌面连接Raspbian VNCServer
- greenDAO的使用详解---(4)greenDAO3.2.2结合sqlcipher加密数据库
- Ubuntu14.04如何备份和恢复系统
- 监管实锤,现金贷99%平台将消亡,小贷牌照身价飞升至千万
- Android N 多窗口模式,你需要知道的一切
- Oracle计算时间差表达式
- Elasticsearch实践(二)在Springboot微服务中集成搜索服务
- 花式写单例之单例的六种写法
- 11月份,项目测试
- Android自定义通用适配器