2015-07-12 40 views
0

我知道使用salted哈希是將密碼保存在數據庫中的首選方法。但是,這僅適用於交互式目的。 例如,爲非交互式登錄保存密碼

  1. 用戶使用一個登記表填寫密碼,然後將其保存 作爲數據庫中的哈希鹽醃條目。
  2. 下一次使用密碼 登錄時,會將其散列值與數據庫 條目進行比較。

到目前爲止好。如果我想自動登錄本身,該怎麼辦?即,而不是用戶通過在線形式輸入密碼來提交登錄密碼,我想將密碼存儲在本地機器的某處,以便我可以將其用於登錄表單中的自動驗證。麻煩的是,我不能在這裏使用醃製哈希,因爲它是單向的,因此我需要去加密。如果我選擇加密,我需要使用一個安全密鑰來解密,這個密鑰也必須存儲在某個地方。如果我需要加密,我該如何安全地做到這一點?如果不是,最好的方法是什麼。這種事情有最佳做法嗎?

我已經看到一些失敗的實現已被破解。 SQL開發人員爲例,https://stackoverflow.com/a/3109774/350136

回答

1

Mac OS X & iOS有Keychain用於保存憑據。

如果您無法安全地存儲憑據,請使用token that can be revoked

"Remember me" cookies & app-specific passwords是相同的概念。

+0

謝謝,Keychain很有意思,但它適用於OS X.是否有任何跨平臺解決方案? – toddlermenot

+0

@toddlermenot不確定其他平臺可用。有一些關於StackOverflow的討論[Windows](http://stackoverflow.com/questions/442923/windows-equivalent-of-os-x-keychain)&[Android](http://stackoverflow.com/questions/1925486 /機器人儲存-的用戶名和口令)。 – 2015-07-13 20:14:22