赞
踩
这种方式使用简单,在入库/出库只需要将字段做对应的加解密操作即可,一定程度上解决了将数据赤裸裸暴露的问题。但也有很大弊端:
SQLCipher(Cipher, [ˈsaɪfə(r)],加密算法的意思)。SQLCipher是一个在SQLite基础之上进行扩展的开源数据库,它主要是在SQLite的基础之上增加了数据加密功能,如果我们在项目中使用它来存储数据的话,就可以大大提高程序的安全性。SQLCipher支持很多种不同的平台
使用256-bit AES加密,其原理和SQLiteEncrypt一样,都是实现了SQLite的加密相关接口
- 快速只有5 - 15%的性能开销加密
- 100%的数据库中的数据文件是加密的
- 使用良好的安全模式(CBC模式,密钥推导)
- 零配置和应用程序级加密
- OpenSSL加密库提供算法
SQLite数据库设计中考虑了安全问题并预留了加密相关的接口。但是并没有给出实现。SQLite 数据库源码中通过使用SQLITE_HAS_CODEC宏来控制是否使用数据库加密。并且预留了四个结构让用户自己实现以达到对数据库进行加密的效果。这四个接口分别是:
而sqlcipher就是实现这四个接口以及自己的一些接口
解密的操作是以page为单位进行的(每一个page就是db文件的每1024个字节)。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。