ios - 将数据安全地存储在设备中,直到应用程序出现在 iOS 中

标签 ios objective-c encryption

我想在设备中非常安全地存储一个键值对。但是,我想将数据保存到设备中的应用程序。
一旦应用程序被删除,这些数据也应该被删除。

NSUserdefault 不是很安全。

key 扣 是另一种选择,因为它是安全的,但即使在应用程序从设备中删除后它也会保留数据。

我该如何进行。
有什么帮助吗?

最佳答案

创建一个随机加密 key 。将加密 key 存储在钥匙串(keychain)中。使用加密 key 加密数据。将加密数据存储在应用程序目录中任何方便的地方。如果您想在恢复过程中保留它,请将其存储在备份的位置(例如库/应用程序支持或 NSUserDefaults)。如果您不希望在恢复过程中保留它,请将其存储在 Library/Caches 中(您可能需要对此进行一些研究;“当系统磁盘空间非常低时,系统可能会在极少数情况下删除 Caches 目录”所以存在丢失数据的危险,但无论如何您都必须处理它以防恢复)。您也可以使用NSURLIsExcludedFromBackupKey以避免备份它。

当应用程序被删除时,加密数据将被删除。您将在钥匙串(keychain)中留下随 secret 钥,但这只是一个没有值(value)的随机数。

关于ios - 将数据安全地存储在设备中,直到应用程序出现在 iOS 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38593528/

相关文章:

ios - QuickBlox iOS 问题 - 密码未验证

ios - NSDateComponents weekOfYear 崩溃

iphone - 正确存储应用内购买

android - 尝试在android中解密加密数据库时出现"File is encrypted or is not a database"错误

c# - 使用用户输入密码使用 DES 加密

objective-c - 使用 NSKeyedArchiver 存储自定义数据模型

ios - 为什么 UITableView cell separatorInset 默认为 15,而 View Controller 的 Root View Layout Margins 是 16?

ios - 使用 NSURLSession 发出 http DELETE 请求

iphone - iOS——从包含地址的 NSString 获取指针

encryption - 在 Coldfusion 中复制 CryptDeriveKey