2016-02-28 109 views
0

我打算在會話期間在內存中存儲明文密碼,並且希望得到一些關於這種情況會不安全的反饋。存儲密碼的原因是,在應用程序的用戶執行某些操作時,會話期間將多次使用該密碼來加密和解密後臺數據。我認爲每次讓用戶輸入密碼會更安全,但這會導致非常差的用戶體驗,因此我試圖提出儘可能安全的解決方案,而不會刺激用戶。將會話密碼存儲在會話持續時間的變量中

回答

0

不要直接使用密碼來加密/解密數據,您應該從密碼中派生一個密鑰(請參閱PBKDF2)。用於加密/解密的派生密鑰對於長時間存儲在內存中更安全。

+1

感謝您的評論。糾正我,如果我錯了,但我假設你的建議是這樣的:用戶提供他們的密碼,然後從這個密碼派生一個密鑰,這個密鑰存儲在內存中的會話持續時間,並習慣於加密和解密任何數據。我只有一個關於這個問題 - 如果攻擊者獲得了派生密鑰,攻擊者是否能夠解密任何加密數據?謝謝你的幫助! – user3607758

+0

*「用於加密/解密的派生密鑰對於長時間存儲在內存中更安全。」* - 您能否解釋爲什麼這會更安全?我不認爲這是。 –

+0

是的,他們能夠解密/加密數據,如果他們獲得派生密鑰,但您的用戶會感激他們的實際密碼沒有暴露。將解密密鑰存儲在內存中通常是不可避免的,但存儲密碼是另一回事。 – zeroimpl