我需要保护 Documents Directory 中的数据,因此我使用了Apple Data Protection API。苹果资产
- 我在设置应用程序中启用了数据保护。设置->常规->密码锁定
我使用 NSDataProtectionKey 编写文件
[data writeToFile:imagePath options:NSDataWritingFileProtectionComplete error:nil];
文件写入成功
我得到文件属性
[[NSFileManager defaultManager] attributesOfItemAtPath:fullPath error:NULL];
它返回这样的属性,因为您可以看到 NSFileProtectionKey 是 NSFileProtectionComplete
NSFileCreationDate = "2013-01-22 06:10:48 +0000"; NSFileExtensionHidden = 0; NSFileGroupOwnerAccountID = 501; NSFileGroupOwnerAccountName = mobile; NSFileModificationDate = "2013-01-22 06:10:48 +0000"; NSFileOwnerAccountID = 501; NSFileOwnerAccountName = mobile; NSFilePosixPermissions = 420; NSFileProtectionKey = NSFileProtectionComplete; NSFileReferenceCount = 1; NSFileSize = 8964; NSFileSystemFileNumber = 335997; NSFileSystemNumber = 16777218; NSFileType = NSFileTypeRegular;
我确信我已经成功地写入了文件并且我成功地读取了该文件。但是,当我在iExplorer(Mac 的外部 iOS 设备阅读器应用程序)中打开此设备时,它会向我显示未加密写入的文件。
没有加密意味着我写了一个图像文件。但我可以在 iExplorer 中查看该图像(在文档目录中)。但我的目的是加密它。因为我不希望用户看到那些文件。我知道其他加密 AES 算法。但是想知道为什么数据保护 API 不起作用。
注意:我使用 iPad2 iOS 6.0.1 和设备中记录的日志