IOS在钥匙串中存储多个密码

时间:2012-09-07 20:19:14

标签: iphone ios password-protection keychain

在我的应用程序中,我可以使用此代码

在钥匙串中保存读取精美的1密码存储区
// save password
[keychainItem setObject:textFieldPassword.text forKey:(__bridge id)(kSecValueData)];

//get pasword from keychain
NSString *_password = [keychainItem objectForKey:(__bridge id)(kSecValueData)];

我的问题是:如何在钥匙串中一次存储多于1个密码?

2 个答案:

答案 0 :(得分:2)

钥匙串编程很难。我使用一个名为SFHFKeychainUtils的包装类。它有非常简单的类方法来存储和检索密码。

检查出来:https://github.com/ldandersen/scifihifi-iphone/tree/master/security

使用您组成的键存储项目。所以你可以拥有@“WiFiPasswordKey”,@“LoginPasswordKey”等。

答案 1 :(得分:0)

谢谢大家的回答。

这是我使用的解决方案:

向我的项目添加文件KeychainItemWrapper.h / m

分配2个钥匙串项目:

//aloc for user password
keychainItem = [[KeychainItemWrapper alloc] initWithIdentifier:@"passowrdKey1" accessGroup:nil];
//aloc for user password2
keychainItem2 = [[KeychainItemWrapper alloc] initWithIdentifier:@"passowrdKey1" accessGroup:nil];

然后只需使用它来读/写

//WRITE    
// save password
[keychainItem setObject:@"password1" forKey:(__bridge id)(kSecValueData)];
// save password2
[keychainItem2 setObject:@"password2" forKey:(__bridge id)(kSecValueData)];

//READ        
//get pasword from keychain
NSString *_pass = [keychainItem objectForKey:(__bridge id)(kSecValueData)];

//get pasword from keychain
NSString *_pass2 = [keychainItem2 objectForKey:(__bridge id)(kSecValueData)];