【发布时间】:2017-08-16 17:00:20
【问题描述】:
我正在尝试使用KeychainItemWrapper.h 和keychainWrapperItemWrapper.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>
有没有办法检索用户名和密码的原始字符串?
我以前从未使用过钥匙串,任何帮助将不胜感激!
【问题讨论】:
-
您的代码没有明显的问题,尽管看起来
NSString正在转换为NSData。值<6f78696c 69676874 2d746573 74>是NSData等效于NSString“oxilight-test”。你从哪里得到KeychainItemWrapper.h,你是如何将它与你的项目集成的?你在使用 CocoaPods 吗?您使用的是哪个版本的 Xcode?您使用的是哪个版本的 iOS? -
你在用这个吗? -gist.github.com/dhoerl/1170641。这个脚本有很多问题。试试其他的 - koenig-media.raywenderlich.com/uploads/2014/12/… | github.com/vsouza/awesome-ios#keychain
标签: ios objective-c iphone keychainitemwrapper security.framework