在iOS上encryptionSQLite数据库文件
我的客户问我是否可以encryption他的iOS SQLite文件。
我检查了这两个资源:
encryption和解密Sqlite文件(使用核心数据)
http://support.apple.com/kb/HT4175
请纠正我,如果我错了,文件将被encryption,所以没有人能够破解它(虽然这将是可能的一个坚定的cookies,我认为)。
核心数据查询将照常运行吗? 我的意思是没有性能损失,既不是一个不同的API。
您提供的链接是关于encryption整个设备的存储的; 但是,如果目标是用户无法直接打开数据库文件,那么将无法帮助您,因为唯一可以防止数据在设备被盗的情况下被访问。 它也依赖于用户来设置,应用程序不能强制设备存储被encryption。
基本上,想要存储encryption的动机是什么?
编辑:
基于响应链,我认为在以下位置使用SQLLite的encryption变体:
是一个好的解决scheme。 这在数据库内容到达存储之前进行encryption,这很好。 攻击者仍然可以find你的代码中使用的密钥来解密数据库,但是你可以添加任何防御层。 我不认为你可以在CoreData中使用它(因为它是build立在内置的sqllite库之上的),但你也可以像FMDB一样使用它:
- 增加关系到仅更新的产品核心数据
- 将核心数据实体属性从ViewController A传递给B.
- 将SQL存储添加到NSPersistentStoreCoordinator时如何debugging/处理间歇性的“授权被拒绝”和“磁盘I / O”错误?
- 当应用程序在后台模式下工作时,CoreData错误/exception
- 核心数据与iCloud导致低内存警告和崩溃,内存使用量不断增长
- 核心数据NSManagedObject没有有效的NSEntityDescription
- 断言失败 – 与NSFetchedResultsController
- NSP预先消除了SQL的GROUP BY等价物
- NSFetchedResultsController不总是调用didChangeObject:atIndexPath:forChangeType:newIndexPath:for NSFetchedResultsChangeMove