我想在我的钥匙串(keychain)中保存两个密码(一个应用密码和一个后端密码),我想知道这应该如何工作。
我正在使用带有不同标识符的 KeychainItemWrapper。
KeychainItemWrapper *kcw1 = [[KeychainItemWrapper alloc] initWithIdentifier:id1 accessGroup:nil];
KeychainItemWrapper *kcw2 = [[KeychainItemWrapper alloc] initWithIdentifier:id2 accessGroup:nil];
我正在使用其中一个来保存和检索应用程序或后端引脚。
我用 :
[self.kcw1 setObject:aVerifyCode forKey:(__bridge id) kSecValueData]
[self.kcw2 setObject:aAppPin forKey:(__bridge id) kSecValueData]
但它不起作用 - 结果是 -25299 - 指定的项目已存在于钥匙串(keychain)中
那么如何在我的钥匙串(keychain)中保存多个密码呢?
最佳答案
好的,我想我知道问题所在了!
KeychainItemWrapper 使用 kSecAttrGeneric 的标识符。
但这不是区分条目的方法。如果要保存两个帐户或两个密码
kSecValueData
这将导致重复的整体出现错误(-25299)。
原因是,苹果钥匙串(keychain) api 使用
kSecAttrAccount
和
kSecAttrService
来区分条目。
所以你可以修改 keychainItemWraper 如果你想像这个 thread 中显示的那样
关于ios5 - iOS在钥匙串(keychain)中保存多个密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11055731/