2012-09-21 49 views
14

保存用户名和密码在我的iPhone应用程序,有喜欢的用户名,密码和某些URL到WebService的一些机密数据。 哪一个更好NSUserdefaults或keychain。有人说NSUserdefaults不安全。为什么它不安全? 并且可以给任何一个人的优点和缺点。存储在NSUserDefaults的或NSUserDefaults的钥匙扣是更好地在iPhone应用程序

回答

0

钥匙扣方式是更好的解决方案,因为它更安全,但不管怎么说,如果你将这类信息保存到NSUserDefaults的,你的用户不会感觉有什么不同。如果有人盗用他们的设备,他们可以从Keychain获取信息,就像他们从UserDefaults获得信息一样。所以这个安全问题就是修辞。但无论如何,良好的编程风格是将这些数据保存到钥匙串中!

0

我会建议你使用钥匙串。 使用钥匙串,您可以以加密形式存储您的密码。看看苹果的GenericKeychain样品。当钥匙扣相比

是NSUserDefaults的有点不太安全。 在NSUserDefaults中,如果特定键已知,则可以轻松访问数据。 Keychain并非如此。

您也可以转换NSUserDefaults的到钥匙扣。看看here

+0

*在NSUserDefaults中,如果特定键已知,则可以轻松访问数据。 Keychain *并非如此。这是什么意思? – Honey

10

注意即使您的应用程序被删除,钥匙串数据仍将保留,但NSUserDefaults数据将随应用程序消失(NSUserDefaults是应用程序沙箱的一部分,Keychain是独立于应用程序的服务)可能会很有用。