English 中文(简体)
在iPhone应用程序中存储密码
原标题:
  • 时间:2009-02-07 11:32:17
  •  标签:

我有一个简单的应用程序,基于“实用程序”模板。它通过NSXMLParser检索密码保护的XML文件。

我想允许用户在“FlipsideView”中设置用户名和密码,我该怎么做?

我已经准备好了基础工作,包括两个UITextField框,其值在视图加载时被设置为固定值(使用viewWillAppear方法),并在视图关闭时进行NSLog测试(显然,NSLog仅用于测试,在viewWillDisappear方法中)。

我应该如何存储数据?我已查看了开发者文档,似乎应该使用NSUserDefaults...?

最佳回答

我同意本的观点。这正是钥匙扣的用途。

无论如何,我都不会像dbr建议的那样仅在默认设置中存储密码。这是非常不安全的。实质上,您是在公开存储密码。

In addition to Apple s sample code, I also recommend Buzz Anderson s Keychain code: iPhone Keychain Code

问题回答

这正是苹果开发钥匙串(Keychain)的原因。使用钥匙串,您可以以加密形式存储密码。请查看苹果的GenericKeychain示例。

啊哈,NSUserDefaults似乎能工作,并且易于使用,但根本不安全。

password 是 UITextField 的 IBOutlet。

- (void)viewWillAppear:(BOOL)animated
{
    NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
    NSString *pword = [prefs objectForKey:@"password"];
    password.text = uname;
}

- (void)viewWillDisappear:(BOOL)animated{
    NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
    [prefs setObject:password.text forKey:@"password"];
}

密码以纯文本形式存储在 plist 中,因此其他人访问起来会非常容易...但对于存储非敏感设置非常有用。

我最终使用这个来存储用户名字段,并使用August的答案中的SFHFKeychainUtils密钥链代码存储密码。





相关问题
热门标签