钥匙串 - 它是什么?

KeyChain - what is it?

我正在为 iOS 编写我的第一个应用程序。它设想了一些保护措施,防止同一用户设备的重复操作(很少,如果是苹果帐户。在应用程序级别登录 "login-password" 是不存在的,因此有必要实施隐藏标识。 生成一个随机数存储在用户的某处,即使重新安装应用程序也保持不变,这样会方便吗?

开始阅读。了解了 SSKeyChain。但只是没有足够的经验来理解你的逻辑......请用通俗易懂的语言解释!

我的假设: (如有错误请指正!)

1) 每个 用户单个 Apple 帐户所有应用程序 附加到一个 设备,因此存储在设备上。或者是云 一个帐户和多个设备 这个帐户(称为钥匙串)?

2) 可以免费访问 SSKeyChain 库(通过安全框架),我您的应用程序可以写入任何数据 使用他们的密钥(应用程序的密码、登录名、配色方案)...所以如果您重新安装该应用程序,它可以检查 "are there any settings in KeyChain for me?" 并从那里获取数据。类似NSUserDefaults/SharedPreferences(ios/android),重装后不退缩

3) 用户设备从 KeyChain 丢失数据的可能性仅为 shift Apple 帐户 Apple 的任何操作。

所以呢? :)

  1. 如果您重新安装应用程序,存储在钥匙串中的信息仍然是there.But您的配置文件不应更改 来自文档

On iPhone, Keychain rights depend on the provisioning profile used to sign your application. Be sure to consistently use the same provisioning profile across different versions of your application.

  1. 钥匙串是加密容器,在 iOS 中,应用程序只能访问自己的钥匙串项目。
  2. 当用户备份 iPhone 数据时,钥匙串数据被备份,但钥匙串中的秘密在备份中保持加密状态。钥匙串密码不包含在备份中。因此,存储在 iPhone 钥匙串中的密码和其他秘密不能被获得 iPhone 备份访问权限的人使用。

它只是一个iOS提供容器来保存敏感数据。我不明白你说的苹果账户