2012-11-20 41 views

回答

19

我會建議用於存儲登錄憑據鑰匙扣由於安全功能提供。 iOS上的鑰匙串服務提供了安全存儲密碼,鑰匙,證書等內容的方法。

敏感數據(如密碼和鑰匙)應存儲在鑰匙串中。蘋果Keychain Services Programming Guide指出

「鑰匙串是保存密碼多個 應用和安全服務的加密容器。鑰匙扣是安全存儲 容器,這意味着當鑰匙串被鎖定,沒有人能 訪問其受保護的內容「。

這裏有兩個很好的教程給你。

  1. How Not to Store Passwords in iOS
  2. Using Keychain to Store Username and Password
  3. How to secure user data
+0

嗨,感謝您的快速回復......但我有一個懷疑呢?...雖然存儲在鑰匙鏈中是安全的,但在卸載狀態下鑰匙鏈包含的密碼不會被刪除,那麼我怎麼樣保持這一點? – Spynet

+0

即使應用程序已被刪除且密碼保存在鑰匙串中,也是安全的。刪除應用程序時,無法將其從鑰匙串中刪除。如果有的話,密碼將會持續存在,直到您的應用程序再次被重新安裝。沒有人可以訪問它或看到它。 –

+0

@Spynet:這將是一個問題,您可以使用向NSUSerDefault添加一個標誌來克服它。當應用程序運行時,首先檢查布爾。 bool表示密碼保存到鑰匙串。 –

0

link我其目的是使得使用Mac OSX和iOS Keychain與NSUserDefaults一樣簡單。

這是一個志願兼容可可包裝器在Mac OSX和iOS鑰匙扣,對於這個包裝是NSUserDefaults的模型,這樣的意圖是爲了共同的情況下,你通常會想打電話:

[NSUserDefaultsController sharedUserDefaultsController] 

你應該能夠調用

[PDKeychainBindingsController sharedKeychainBindingsController] 

而對於常見的情況下,你通常會叫:

[NSUserDefaults standardUserDefaults] 

你應該能夠調用

[PDKeychainBindings sharedKeychainBindings] 

有一對夫婦的實現之間的差異。首先,這個類只對字符串有效,因爲這就是Keychain所接受的,所以在類中省略了非字符串對象(如數組和字典等)的方法。其次,現在只實現「立即模式」,所以你不能設置一堆值,然後調用「保存」只做一次寫操作,並且沒有「恢復到保存值」功能)。

相關問題