2016-07-07 133 views
0

我正在構建一個快速的應用程序並擁有用戶帳戶。我需要安全地保存他們的信息(密碼),我已經讀過使用salted hash作爲密碼是安全的,但我想知道是否推薦使用它並將散列密碼存儲在我的i​​cloud工具包中(我的數據庫)我能做些什麼來快速安全地存儲密碼?

回答

2

如果您需要原件的建議應該是將密碼存儲在鑰匙串中。如果你只需要存儲一個散列來進行驗證,就可以將其存儲並存儲爲SHA-256 HASH(並將鹽保存在鑰匙串中,也可能是散列)。

如果您需要將密碼放在iOS設備上的數據庫中,並且無論出於何種原因,Keychain都不適合您,則應使用SQLCipher,並讓用戶輸入數據庫密碼以解鎖它,而不是在任何地方儲存DB密鑰。如果你走這條路線,在用戶輸入上使用一個密鑰派生函數,例如PBKDF2。

通常,假定您存儲的任何密碼是安全問題。儘量不要自己儲存它們。

+0

你能否澄清關於KDFs的部分?我認爲你總是會想用KDF而不是簡單的強力鹽+散列... – dandavis

+0

KDF的目的是引入計算延遲來防止暴力攻擊。相比之下,哈希設計的速度很快。在選擇正確的道路上,比我聰明的人有很多答案。例如,請參閱http://crypto.stackexchange.com/questions/4033/whats-the-difference-between-a-key-derivation-function-and-a-password-hash。 –

相關問題