我要保持我的登錄憑證在整個應用程序,所以,我 有3個選項,以保持我的登錄憑據...在iOS中維護登錄憑證的最佳方式是什麼?
1 key chain
2 NSUserDefaults
3 plist
哪一個是最好的選擇呢? 有沒有其他方式來存儲登錄憑據?
在此先感謝
我要保持我的登錄憑證在整個應用程序,所以,我 有3個選項,以保持我的登錄憑據...在iOS中維護登錄憑證的最佳方式是什麼?
1 key chain
2 NSUserDefaults
3 plist
哪一個是最好的選擇呢? 有沒有其他方式來存儲登錄憑據?
在此先感謝
我會建議用於存儲登錄憑據鑰匙扣由於安全功能提供。 iOS上的鑰匙串服務提供了安全存儲密碼,鑰匙,證書等內容的方法。
敏感數據(如密碼和鑰匙)應存儲在鑰匙串中。蘋果Keychain Services Programming Guide指出
「鑰匙串是保存密碼多個 應用和安全服務的加密容器。鑰匙扣是安全存儲 容器,這意味着當鑰匙串被鎖定,沒有人能 訪問其受保護的內容「。
這裏有兩個很好的教程給你。
我認爲是NSUserDefaults的這裏存儲的登錄憑據簡單的方法是一個教程
憑證將以'NSUserDefaults'作爲純文本存儲。這不安全。 –
@JackHumphries好吧,只是我告訴它很容易保存 –
@JackHumphries將plist提供安全嗎? –
這link我其目的是使得使用Mac OSX和iOS Keychain與NSUserDefaults一樣簡單。
這是一個志願兼容可可包裝器在Mac OSX和iOS鑰匙扣,對於這個包裝是NSUserDefaults的模型,這樣的意圖是爲了共同的情況下,你通常會想打電話:
[NSUserDefaultsController sharedUserDefaultsController]
你應該能夠調用
[PDKeychainBindingsController sharedKeychainBindingsController]
而對於常見的情況下,你通常會叫:
[NSUserDefaults standardUserDefaults]
你應該能夠調用
[PDKeychainBindings sharedKeychainBindings]
有一對夫婦的實現之間的差異。首先,這個類只對字符串有效,因爲這就是Keychain所接受的,所以在類中省略了非字符串對象(如數組和字典等)的方法。其次,現在只實現「立即模式」,所以你不能設置一堆值,然後調用「保存」只做一次寫操作,並且沒有「恢復到保存值」功能)。
嗨,感謝您的快速回復......但我有一個懷疑呢?...雖然存儲在鑰匙鏈中是安全的,但在卸載狀態下鑰匙鏈包含的密碼不會被刪除,那麼我怎麼樣保持這一點? – Spynet
即使應用程序已被刪除且密碼保存在鑰匙串中,也是安全的。刪除應用程序時,無法將其從鑰匙串中刪除。如果有的話,密碼將會持續存在,直到您的應用程序再次被重新安裝。沒有人可以訪問它或看到它。 –
@Spynet:這將是一個問題,您可以使用向NSUSerDefault添加一個標誌來克服它。當應用程序運行時,首先檢查布爾。 bool表示密碼保存到鑰匙串。 –