Ios 使用NSUserDefault保存用户名密码,安全程度如何?

Ios 使用NSUserDefault保存用户名密码,安全程度如何?,ios,objective-c,passwords,nsuserdefaults,Ios,Objective C,Passwords,Nsuserdefaults,我会用NSUserDefault保存几个值(用户名密码) 第一:有没有办法将它们保存在一起(例如在数组中)? 第二:安全吗?或者我是否以某种方式对密码进行了加密?您可以使用NSDictionary或NSarray来保存您的值,并且您还应该加密您的数据,因为NSUserDefaults的工作方式类似于plist,任何人都可以访问它加密将为您提供一些安全性。问题是您的程序还必须解密密码,这意味着它必须将密钥存储在某个地方。这将使其容易受到逆向工程的影响。更好的方法是在密码上使用一个(比如散列)并存储

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

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

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

加密将为您提供一些安全性。问题是您的程序还必须解密密码,这意味着它必须将密钥存储在某个地方。这将使其容易受到逆向工程的影响。更好的方法是在密码上使用一个(比如散列)并存储该散列值。当用户输入密码时,您可以对密码应用单向函数,并将结果与存储值进行比较。以这种方式,密码不能被泄露(好吧,总是有字典攻击,但这是密码强度的问题)

与其使用NSUserDefaults,不如使用。它的主要目的是安全地存储用户凭据。苹果已经为你做了所有的艰苦工作。好好利用它。

不,它不安全


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

易于使用,与ARC配合使用

谢谢,您对如何在objective-c中加密密码有什么建议吗?尝试aes 256加密,一种简单的方法是在NSData中创建一个类别,并将其与字符串一起使用,这里有一个很好的教程,其中包含两个示例