相关疑难解决方法(0)

iOS在钥匙串中保存多个密码

我想在我的钥匙串中保存两个密码(一个app pin和一个后端pin),我想知道这应该如何工作.
我使用KeychainItemWrapper与不同的标识符.

KeychainItemWrapper *kcw1 = [[KeychainItemWrapper alloc] initWithIdentifier:id1 accessGroup:nil];
KeychainItemWrapper *kcw2 = [[KeychainItemWrapper alloc] initWithIdentifier:id2 accessGroup:nil];
Run Code Online (Sandbox Code Playgroud)

我正在使用其中一个来保存和检索应用程序或后端引脚.

我用 :

[self.kcw1 setObject:aVerifyCode forKey:(__bridge id) kSecValueData]
[self.kcw2 setObject:aAppPin forKey:(__bridge id) kSecValueData]
Run Code Online (Sandbox Code Playgroud)

但它不起作用 - 结果是-25299 - 指定的项目已经存在于钥匙串中

那么如何在钥匙串中保存多个密码呢?

keychain ios5

5
推荐指数
1
解决办法
6163
查看次数

备份恢复后,SecItemCopyMatching返回-26276

  1. KeychainTouchID应用程序是使用Xcode安装并执行的.通过按" 添加受保护的密钥 " 生成密钥,按" 使用受保护的密钥 "即可使用密钥.密钥是使用Secure Enclave生成的.
  2. 计算机上的加密iPhone备份是使用iTunes制作的.删除的所有内容和设置(设置 - >常规 - >重置 - >删除所有内容和设置).
  3. 加密的iPhone备份已恢复到同一iPhone.
  4. 需要重新安装KeychainTouchID应用程序,因为它是使用Xcode进行的.
  5. KeychainTouchID应用程序已执行.
  6. 那之后:

按"使用受保护的密钥"返回-26276(AAPLKeychainTestsViewController.m @ 288函数 - > SecItemCopyMatching)

通过按"删除受保护的密钥"重新加速-4(AAPLKeychainTestsViewController.m @ 326功能 - > SecItemDelete)

按"添加受保护的密钥"返回成功,但无法删除和使用.


我在这里找到:errSecInternal = - 26276,/*安全框架中发生内部错误.*/

所以在这种情况下我无法访问新添加的密钥.

  • 为什么在备份恢复后SecItemCopyMatching返回-26276?
  • 为什么不能删除此密钥,但是可以添加?
  • 剂量sombody有这种经历吗?
  • 解决这个问题的方法是什么?

我确实将这个问题发布给了Apple团队,但是超过1个月没有答案.

security objective-c keychain ios swift

5
推荐指数
1
解决办法
364
查看次数

标签 统计

keychain ×2

ios ×1

ios5 ×1

objective-c ×1

security ×1

swift ×1