2009-02-07 43 views
25

我有一個基於「實用程序應用程序」模板的簡單應用程序。它檢索密碼保護的XML文件(通過NSXMLParser)。在iPhone應用程序中存儲密碼

我想允許用戶在「FlipsideView」中設置用戶名和密碼,我該怎麼做呢?

我有兩個UITextField框,它們的值在視圖加載時使用固定值(使用方法viewWillAppear),NSLog當視圖關閉時(NSLog爲僅用於測試,顯然在viewWillDisappear方法中)

如何存儲數據?我看了一下開發者文檔,似乎我應該使用NSUserDefaults ..?

回答

33

我同意本。這是恰好是鑰匙串的用途。

在任何情況下,我都不會僅僅按照dbr的建議存儲默認密碼。這是非常不安全的。你基本上是在公開存儲你的密碼。

除了蘋果的示例代碼,我還建議巴茲安德森的鑰匙扣代碼: iPhone Keychain Code

4

啊哈,似乎NSUserDefaults的工作,並且使用簡單,但絲毫不安全:

password是IBOutlet中給出UITextField。

- (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中純文本,所以這將是別人來訪問很容易..但是這是用於存儲非敏感的設置非常有用。

我最終使用這個來存儲用戶名字段,並使用8月份回答中的SFHFKeychainUtils keychain code存儲密碼。

+3

這是非常不安全的。你基本上是在公開存儲密碼。 – August 2009-02-07 17:15:43

+0

葉,我完全忘記了鑰匙扣..我已經更新了答案,重申它是多麼不安全 – dbr 2009-02-08 05:20:25

9

這正是蘋果公司開發鑰匙扣的原因。使用鑰匙串,您可以以加密形式存儲您的密碼。看看蘋果的GenericKeychain樣品。