2011-01-20 77 views
3

我的客户问我是否可以加密他的iOS SQLite文件。
我检查这两个资源:在iOS上加密SQLite数据库文件

Encrypt & Decrypt Sqlite file (Using Core Data)
http://support.apple.com/kb/HT4175

请纠正我,如果我错了,该文件将被加密,所以没有人会能够破解进去(虽然这将是可能的对于一个坚定的饼干我认为)。

核心数据查询将照常运行吗?我的意思是没有性能损失,既不是一个不同的API。

回答

3

您提供的链接是关于在整个设备上加密存储的说明;但是,如果目标是用户无法直接打开数据库文件,那么它将不会对您有所帮助,因为唯一可以防止您的数据在设备被盗时被访问。它也依赖于用户来设置它,应用程序不能强制设备存储被加密。

基本上,希望存储加密的动机是什么?

编辑:

基于该响应链,我认为使用SQLLite的加密变体在:

http://sqlcipher.net/

是一个很好的解决方案。这会在数据库内容到达存储之前对其进行加密,这非常棒。攻击者仍然可能能够找到代码中用于解密数据库的密钥,但是可以添加的任何防护层都将有所帮助。我不认为你可以使用与CoreData(因为它之上构建内置sqllite库),但你很可能与像FMDB包装使用它:

https://github.com/ccgus/fmdb

+0

我的客户要加密数据库文件,以防止用户直接打开数据库文件。在这种情况下做什么? – Chiron 2011-01-20 23:35:02

相关问题