我会使用NSUserDefault保存一些值(用户名密码)。
首先:有没有办法将它们保存在一起(例如在数组中)? 第二:安全吗?或者我是否以某种方式加密密码?
答案 0 :(得分:14)
加密会给你一些安全保障。问题是你的程序还必须解密密码,这意味着它必须将密钥存储在某个地方。这将使其易受逆向工程的影响。更好的方法是在密码上使用one-way function(例如哈希)并存储该哈希值。当用户输入密码时,您可以将单向函数应用于密码,并将结果与存储值进行比较。通过这种方式,密码不会受到损害(好吧,总是存在字典攻击,但这是密码强度的问题)。
不使用NSUserDefaults,最好使用iOS Keychain Services。它的主要目的是安全地存储用户凭据。 Apple已经为您完成了所有艰苦的工作。利用它。
答案 1 :(得分:8)
没有。这不安全。
如果您需要安全存储数据,请使用keychain。
答案 2 :(得分:1)
您可以使用NSDictionary或NSarray来保存您的值,并且您还应该加密您的数据,因为NSUserDefaults就像plist一样可以被任何人访问
答案 3 :(得分:1)
This one易于使用,适用于ARC