使用 identifierForVendor 加密文件是不是合适?

Posted

技术标签:

【中文标题】使用 identifierForVendor 加密文件是不是合适?【英文标题】:Is it appropriate to encrypt a file using identifierForVendor?使用 identifierForVendor 加密文件是否合适? 【发布时间】:2014-10-12 09:52:49 【问题描述】:

我正在考虑在我的应用程序中加密文件的正确方法。以下适用于文件中存储的数据:

数据不是很敏感 如果数据丢失,可以重新创建(虽然非常昂贵) 该文件应该只能由我的应用程序读取 将文件复制到其他设备时,我的应用程序不应读取该文件 应用程序不应要求为钥匙串使用设备密码

我的一个想法是使用[[UIDevice currentDevice] identifierForVendor] 作为加密密钥,因为这应该可以确保我的上述观点。

这是一个好方法吗?请给我所有你能想到为什么我不应该这样做的理由!

【问题讨论】:

【参考方案1】:

我不建议直接使用它。

原因是在升级等多种情况下可能会发生变化。

您仍然可以使用它代替随机生成器,然后将其存储在密钥链中以备将来使用。

参考

当用户从设备中删除该供应商的所有应用并随后重新安装其中一个或多个时,该值会发生变化。当使用 Xcode 安装测试版本或使用 ad-hoc 分发在设备上安装应用程序时,该值也可能发生变化。因此,如果您的应用将此属性的值存储在任何地方,您应该优雅地处理标识符发生变化的情况。

https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIDevice_Class/#//apple_ref/occ/instp/UIDevice/identifierForVendor

【讨论】:

以上是关于使用 identifierForVendor 加密文件是不是合适?的主要内容,如果未能解决你的问题,请参考以下文章

如何在ios5中使用identifierForVendor。?

使用iTunes恢复备份安装相同应用程序的两个iOS设备的identifierForVendor可以相同吗?

Mac App Store App 和 identifierForVendor

[UIDevice currentDevice].identifierForVendor 的替代品

从 iOS 6 更新到 iOS 7 时 identifierForVendor 会发生变化

调试中的 identifierForVendor 行为