2016-02-22 途牛无线中心 熊财兴
关于SQLite
iOS中使用了苹果提供的开源免费的数据库引擎——SQLite。它在读写效率、消耗总量、延时时间和整体简单性上具有优越性,这使其成为移动平台数据库的最佳解决方案。Mac OS和iOS中的Keychain使用SQLite来存储,只是Keychain的安全级别比较高。
然而免费版的SQLite有一个致命缺点:不支持加密。这就导致存储在SQLite中的数据可以被任何人用任何文本编辑器查看到。比如某些iOS客户端的DB缓存数据就比较暴露:
SQLite加密方式
对数据库加密的思路有两种:
1、将内容加密后再写入数据库
这种方式使用简单,入库/出库只需要将字段做对应的加密解密操作即可,一定程度上解决了将数据赤裸裸暴露的问题。
不过这种方式并不是彻底的加密,因为数据库的表结构等信息还是能被查看到。另外写入数据库的内容加密后,搜索也是个问题。
2、对数据库文件加密
将整个数据库整个文件加密,这种方式基本上能够解决数据库的信息安全问题。目前已有的SQLite加密基本都是通过这种方式实现的。
SQLite加密工具
1、 SQLite Encryption Extension(SEE)
【 https://www.sqlite.org/index.html】
事实上SQLite有加密接口&