我的客户问我是否可以加密他的iOS SQLite文件 我检查了这两个资源:
Encrypt & Decrypt Sqlite file (Using Core Data)
http://support.apple.com/kb/HT4175
如果我错了,请纠正我,该文件将被加密,因此没有人能够破解它(虽然我认为这可能是一个坚定的破解者)。
核心数据查询会照常运行吗?我的意思是没有性能损失,也没有不同的API。
答案 0 :(得分:4)
您提供的链接谈论加密整个设备的存储空间;但是,如果目标是用户无法直接打开数据库文件,那么将无法帮助您,因为唯一可以防止的是在设备被盗的情况下访问您的数据。它还依赖于用户进行设置,应用程序无法强制要求设备存储加密。
基本上,想要加密存储的动机是什么?
编辑:
基于响应链,我认为在以下位置使用加密的SQLLite变体:
是一个很好的解决方案。这会在数据库内容到达存储之前加密,这很好。攻击者仍然可以找到代码中使用的密钥来解密数据库,但是您可以添加的任何防御层都会有所帮助。我认为你不能将它与CoreData一起使用(因为它是在内置的sqllite库上构建的),但是你可以将它与FMDB这样的包装器一起使用: