2011-02-18 44 views
2

所以我需要能夠真正解密密碼,因爲一些老的網站不使用OAuth,我需要有一些我的用戶通過有API訪問它們。因此,單向哈希不適用於我。我被告知使用AES存儲密碼並使用密碼的密碼作爲密鑰的最佳方式。我如何儲存所有鑰匙以及我在哪裏儲存鹽?基本上我將如何正確實施這一點。使用AES來存儲密碼

謝謝

+0

你的問題沒有多大意義。您使用哪種憑據(登錄名/密碼)訪問這些「舊網站」?也就是說,你*的每個用戶都有自己的帳戶在這些第三方網站,或者你讓他們分享*你的*帳戶?您的用戶是否使用密碼登錄到*您的*網站? – erickson 2011-02-18 19:46:40

回答

1

如果我正確理解你,你有以下情況。用戶使用用戶名和密碼登錄到您的系統。然後,您的系統需要通過登錄到您不控制的另一個系統來模擬這些用戶,這些系統使用用戶的用戶名和密碼來提供給他們的系統。

如果這是正確的,那麼它可能是合理的使用AES其它網站加密他們的憑據。在這種情況下,我不會存儲用於加密這些crendentials的密鑰。用戶用來訪問系統的密碼應該用作密鑰,並且不應該存儲在任何地方。這樣,您就有機會保護您的用戶隱私(當然取決於系統其餘部分的設計)。

既然你要加密,而不是哈希和加密密鑰將目前存在的每個用戶,鹽析是沒有必要的。

另外,我會加密完整的憑據,而不僅僅是密碼。您的用戶通過首先給予您的憑據顯示出令人難以置信的信任度,所以我會盡一切可能來證明這種信任的合理性!

0

你的方法基本上是使用AES作爲哈希函數,但是這不會讓你解密密碼(短的蠻力或某些尚未到被發現的漏洞)。

你可能要考慮不對稱密鑰加密,而不是(例如RSA)。您需要使用您希望解密的每個人的公鑰(包括用戶)對密碼進行加密。