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

时间:2011-03-06 12:58:11

标签: objective-c ios passwords nsuserdefaults username

我会使用NSUserDefault保存一些值(用户名密码)。

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

4 个答案:

答案 0 :(得分:14)

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

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

答案 1 :(得分:8)

没有。这不安全。

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

答案 2 :(得分:1)

您可以使用NSDictionary或NSarray来保存您的值,并且您还应该加密您的数据,因为NSUserDefaults就像plist一样可以被任何人访问

答案 3 :(得分:1)

This one易于使用,适用于ARC