首页 文章

从keychainItemWrapper iOS检索密码和用户名

提问于
浏览
1

我正在尝试使用 KeychainItemWrapper.hkeychainWrapperItemWrapper.m 来存储用户凭据,例如用户名和密码 . 我目前在用户第一次登录时存储,如下所示:

KeychainItemWrapper* keychain = [[KeychainItemWrapper alloc] initWithIdentifier:@"login" accessGroup:nil];
[keychain setObject:_usernameField.text forKey:(__bridge id)kSecValueData];
[keychain setObject:_passwordField.text forKey:(__bridge id)kSecAttrAccount];

这会将值存储在钥匙串中 . 但是下次用户打开应用程序时我想再次检索用户名和密码 . 但是当我打电话给以下时:

NSString *password_ = [keychain objectForKey:(__bridge id)kSecValueData];
NSString *username_ = [keychain objectForKey:(__bridge id)kSecAttrAccount];

似乎我得到奇怪的加密密钥,如: <6f78696c 69676874 2d746573 74> 有没有办法检索用户名和密码的原始字符串?我以前从未使用过钥匙扣,任何帮助都会受到赞赏!

1 回答

  • 0

    如果您使用上面链接的包装,https://koenig-media.raywenderlich.com/uploads/2014/12/KeychainWrapper.zip . 您可以像这样设置用户名和密码 . 我重命名了myObjectForKey和mySetObject的方法 . 你可以初始化

    self.keychainWrapper = [[KeychainWrapper alloc] init];
    

    在你的init方法中 .

    //save user and password
    [self.keychainWrapper setObject:username forKey:(__bridge id)kSecAttrAccount];
    [self.keychainWrapper setObject:_password forKey:(__bridgeid)kSecValueData];
    [self.keychainWrapper writeToKeychain];
    
    //retrieve username and password
    NSString *username = [self.keychainWrapper objectForKey:(__bridge id)kSecAttrAccount];
    NSString *password = [self.keychainWrapper objectForKey:(__bridge id)kSecValueData];
    

相关问题