最近碰到一个问题就是要对iOS Core Data生成的sqlite数据库文件加密,目前有两种方法可以选择,
1、对数据库里面的每个数据都加密,这样的话数据库的Table结构还是可见的,但是内容都经过加密。这种方式做起来比较简单,但是性能估计不会很好,因为对每个数据都加密。
2、对整个sqlite文件加密,这种方法的难点在于sqlite文件是Core Data管理,需要研究Core Data的机制然后做一些customisation,github上有一个解决方案 (省去前缀)/project-imas/encrypted-core-data,好像重载了NSIncrementalStore,在里面用SQLCipher对数据加密,具体的细节有时间需要再研究下。