使用NSUserDefault保存用户名密码,安全性如何以及安全多少?

我会用NSUserDefault保存几个值(用户名密码)。

第一:有没有办法将它们保存在一起(例如在数组中)? 第二:安全吗? 或者我是否以某种方式加密密码?

加密会给你一些安全性。 问题是你的程序还必须解密密码,这意味着它必须将密钥存储在某处。 这将使其易受逆向工程的影响。 更好的方法是在密码上使用单向函数 (例如哈希)并存储该哈希值。 当用户输入密码时,您可以将单向函数应用于密码,并将结果与​​存储值进行比较。 通过这种方式,密码不会受到损害(好吧,总是存在字典攻击,但这是密码强度的问题)。

您最好使用iOS Keychain服务 ,而不是使用NSUserDefaults。 它的主要目的是安全地存储用户凭据。 Apple已经为您完成了所有艰苦的工作。 利用它。

不,这不安全。

如果您需要安全地存储数据,请使用钥匙串 。

您可以使用NSDictionary或NSarray来保存您的值,您还应该加密您的数据,因为NSUserDefaults的工作方式类似于任何人都可以访问的plist

这个易于使用,适用于ARC