2011-09-19 105 views

回答

8

用途:

- (BOOL)writeToFile:(NSString *)path options:(NSDataWritingOptions)mask error:(NSError **)errorPtr 

与文件保护选项之一:

NSDataWritingFileProtectionComplete (iOS 4.0) 
NSDataWritingFileProtectionCompleteUnlessOpen (iOS 5.0) 
NSDataWritingFileProtectionCompleteUntilFirstUserAuthentication (iOS 5.0) 

参见:Apple Documentation

NSDataWritingFileProtectionComplete 

在这种情况下,文件存储在加密的中格式,并且可以仅在设备被解锁时 被读取或写入。在所有其他时间,尝试读取和写入文件 导致失败。

注意:做自己的加密会引发密钥存储问题,并且最好使用Keychain。密钥处理是最大的问题,NSData方法处理这个问题。

+0

我是wirte .jpg文件到文档目录。我仍然可以打开它。使用上面的建议..你能给我一些示例代码? –

+0

你想如何控制访问,你想通过加密完成什么?我添加了一个描述到NSDataWritingFileProtectionComplete键。 – zaph

+0

我想要进程,以便文档目录的内容将以加密格式隐藏或存储,因此没有好友读取它。这是使用编程所需做的所有事情。可能吗?谢谢 –

0

Alan Quatermain提供了一个工具包,在加密库的周围有一些有用的包装,使加密/解密变得非常简单。

这里的链接:

AlanQuatermain/aqtoolkit

不管你做什么,只要确保你不要存储设备未加密的文件,即使是很短的时间。始终将其存储加密。在内存中执行任何加密操作。

请确保您对任何文件操作都不缓存。例如,任何下载等,你想确保没有数据被临时写入磁盘。

最后,对于您的加密文档,请勿将密钥以任何格式存储在设备上。不要将它存放在钥匙扣上。

1

我们无法保护文件目录中的文件。我们可以将文件存储在设备的临时文件夹中。任何人都无法访问