我需要在文檔目錄中保護我的數據,因此我使用了Apple Data Protection API。 Apple AssetiPhone中的數據保護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算法。但想知道爲什麼Data Protection API不起作用。
注:我使用記錄在設備
與iPhone6 iOS9.3.1一樣,它的工作原理與您所期待的完全相同(圖像文件不可見),唯一的一點是我在訪問iExplorer時鎖定設備!因爲'NSFileProtectionComplete'僅在設備鎖定後約10秒才起作用。 – D4ttatraya