2011-03-06 91 views

回答

14

加密會給你一些安全性。問題是你的程序也需要解密密碼,這意味着它必須把密鑰存儲在某個地方。這會使其容易受到逆向工程的影響。更好的方法是對密碼使用one-way function(如散列)並存儲該散列值。當用戶輸入密碼時,您將單向函數應用於密碼並將結果與​​存儲的值進行比較。以這種方式,密碼不會受到損害(好吧,總會有字典攻擊,但這是密碼強度的問題)。

代替使用NSUserDefaults,您最好使用iOS Keychain Services。它的主要目的是安全地存儲用戶憑證。蘋果已經爲你做了所有艱苦的工作。利用它。

1

你可以使用一個NSDictionary的NSArray或保存你的價值觀,你也應該加密數據NSUserDefaults的,因爲就像它可以被任何人訪問的plist中

+0

謝謝,你有一個關於如何加密在Objective-C的密碼的建議嗎? – Sefran2 2011-03-06 13:13:48

+0

嘗試aes 256加密,一種簡單的方法是在NSData中創建一個類別並將其與字符串一起使用,在這裏您可以通過一些示例http://iphonedevelopment.blogspot.com/2009/02/strong -encryption換可可可可touch.html – JonLOo 2011-03-06 13:21:54

8

不,這是不安全的。

如果您需要安全地存儲數據,請使用keychain

相關問題