【发布时间】:2011-11-20 05:44:45
【问题描述】:
谁能帮我确保我的 Documents 目录的内容安全吗?
【问题讨论】:
标签: ios cocoa-touch file-management
谁能帮我确保我的 Documents 目录的内容安全吗?
【问题讨论】:
标签: ios cocoa-touch file-management
使用加密和解密在 iphone 上制作和读取这些文件从这里获取想法http://iphonedevelopment.blogspot.com/2009/02/strong-encryption-for-cocoa-cocoa-touch.html
【讨论】:
【讨论】:
用途:
- (BOOL)writeToFile:(NSString *)path options:(NSDataWritingOptions)mask error:(NSError **)errorPtr
使用文件保护选项之一:
NSDataWritingFileProtectionComplete (iOS 4.0)
NSDataWritingFileProtectionCompleteUnlessOpen (iOS 5.0)
NSDataWritingFileProtectionCompleteUntilFirstUserAuthentication (iOS 5.0)
NSDataWritingFileProtectionComplete
在这种情况下,文件以加密的形式存储 格式,并且只能在设备运行时读取或写入 解锁。在所有其他时间,尝试读取和写入文件 导致失败。
注意:进行自己的加密会引发密钥存储问题,最好的答案是使用钥匙串。密钥处理是最大的问题,而 NSData 方法可以解决这个问题。
【讨论】:
NSDataWritingFileProtectionComplete,只有您的程序可以读取该文件。要超过这个要求,每次使用都需要输入密码,这可能不是您想要的。在您的程序中对加密密钥进行加密和硬编码是可能的,但会降低有效性 - 这可能没问题,您必须决定要防止哪种攻击。
Alan Quatermain 提供了一个工具包,其中包含一些有用的加密库包装器,使加密/解密变得非常简单。
这是链接:
无论您做什么,只要确保您不会将文档存储在未加密的设备上,即使是很短的时间。始终将其加密存储。在内存中执行任何加密操作。
确保对于任何文件操作,您都不会缓存。因此,例如,任何下载等您要确保没有数据临时写入磁盘。
最后,对于您的加密文档,不要以任何格式将密钥存储在设备上。也不要将其存储在钥匙串上。
【讨论】:
我们无法保护文档目录中的文件。我们可以将文件存储在设备的临时文件夹中。任何人都无法访问此内容
【讨论】: