如何使用苹果的数据保护 API 来加密我的数据?
How can I encrypt my data using apple's data protection API?
我想加密保存在用户 phone 上的所有数据,除非通知需要这些数据。在查看苹果的文档后,NSFileProtectionCompleteUnlessOpen
看起来是我需要的通知中使用的数据,NSFileProtectionComplete
应该为通知不需要的数据做。
我知道这些是 NSFileManager
中的属性,但我对此 class 不熟悉,不想弄错。我已经搜索了 createDirectory 函数调用,它允许我在创建新文件时更改 fileProtectionAttributes,但看起来我们的文件来自不同的来源,所以我需要一种从现有目录设置 fileProtection 属性的方法。
我正在使用 swift 2 和 iOS 8
let files = NSFileManager.defaultManager().enumeratorAtURL(CallIn.DocumentDirectoryURL, includingPropertiesForKeys: nil, options: NSDirectoryEnumerationOptions(), errorHandler: nil)
启用数据保护
使用您选择的加密类型创建权利 plist。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>DataProtectionClass</key>
<string>NSFileProtectionComplete</string>
</dict>
</plist>
我想加密保存在用户 phone 上的所有数据,除非通知需要这些数据。在查看苹果的文档后,NSFileProtectionCompleteUnlessOpen
看起来是我需要的通知中使用的数据,NSFileProtectionComplete
应该为通知不需要的数据做。
我知道这些是 NSFileManager
中的属性,但我对此 class 不熟悉,不想弄错。我已经搜索了 createDirectory 函数调用,它允许我在创建新文件时更改 fileProtectionAttributes,但看起来我们的文件来自不同的来源,所以我需要一种从现有目录设置 fileProtection 属性的方法。
我正在使用 swift 2 和 iOS 8
let files = NSFileManager.defaultManager().enumeratorAtURL(CallIn.DocumentDirectoryURL, includingPropertiesForKeys: nil, options: NSDirectoryEnumerationOptions(), errorHandler: nil)
启用数据保护
使用您选择的加密类型创建权利 plist。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>DataProtectionClass</key>
<string>NSFileProtectionComplete</string>
</dict>
</plist>