簡體   English   中英

NSUserDefaults或鑰匙串最好在iPhone應用程序中保存用戶名和密碼

[英]NSUserDefaults or keychain is better to save username and password in iPhone app

在我的iPhone應用程序中,有一些機密數據,例如用戶名,密碼和一些指向Web服務的URL。 NSUserdefaults或鑰匙串哪個更好。 有人說NSUserdefaults是不安全的。 為什么不安全? 並且任何人都可以給出各自的利弊。

NSUserDefaults非常易於使用,並且每個密鑰僅存儲一個值。 但是顯然,這不是一個非常安全的方法,因為沒有加密。

但是鑰匙串是安全的,盡管很難編碼。 您可以參考這些鏈接以使用鑰匙串訪問。

http://log.scifihifi.com/post/55837387/simple-iphone-keychain-code

您也可以使用Simon配備的此庫

https://github.com/goosoftware/GSKeychain

希望對您有幫助!!

可能會注意到,即使刪除了應用程序,鑰匙串數據也將保留,但NSUserDefaults數據將隨應用程序消失(NSUserDefaults是應用程序沙箱的一部分,鑰匙串是與應用程序無關的服務),這可能會很有用。

無論是在設備上還是在到iCloud或同步Mac的(非加密)備份中,存儲在NSUserDefaults中的任何內容都可以(相對)輕松地打開和讀取。

另一方面,鑰匙串用於證書和密碼之類的東西 我已經鏈接了一篇標題為“如何不在iOS中存儲密碼”的文章,該文章也提供了更多有用的信息。

鑰匙串是一種更好的解決方案,因為它更安全,但是無論如何,如果將此類信息保存到NSUserDefaults中,您的用戶不會有任何不同。 如果有人入侵他們的設備,則他們可以從鑰匙串中獲取信息,就像從UserDefaults中獲取信息一樣。 因此,這個安全性問題是誇張的。 但是無論如何,好的編程風格是將這些數據保存到鑰匙串中!

我建議您使用鑰匙串。 使用鑰匙串,您可以以加密形式存儲密碼。 看一下Apple的GenericKeychain示例。

與鑰匙串相比,NSUserDefaults的安全性要差一些。 如果知道特定的密鑰,則在NSUserDefaults中可以輕松訪問數據。 鑰匙串中不是這種情況。

您也可以將NSUserDefaults轉換為鑰匙串。 在這里 看看

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM