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

时间:2014-08-19 10:22:58

标签: ios cocoa security encryption

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

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

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

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

1 个答案:

答案 0 :(得分:0)

我不建议直接使用它。

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

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

<强>参考

  

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

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