2017-03-06 115 views
0

如何最好地實現密碼管理器的重置密碼功能?我目前正在保存一個哈希+鹽醃主密碼,並使用主密碼本身加密密碼,但是如果用戶丟失了主密碼,這意味着密碼不能被解密。如何實現密碼管理器的重置密碼

我想過保存使用主密碼加密的密碼版本和用戶電子郵件加密的版本+用戶創建其帳戶時生成的一些隨機令牌,但這是否安全?這樣做有什麼最佳做法嗎?

用戶的電子郵件也只被存儲爲散列。

因此,爲了澄清我的問題,如果密碼丟失,是否有恢復用密碼加密的數據的最佳做法?

+1

只使用散列函數是不夠的,只是添加一個鹽沒有提高安全性。取而代之的是用隨機鹽對HMAC進行大約100毫秒的持續時間並用散列表保存鹽。使用諸如「PBKDF2」,「password_hash」,「Bcrypt」等功能。關鍵是要讓攻擊者花費大量時間通過強力查找密碼。 – zaph

+0

@zaph我目前使用PBKDF2來生成哈希和驗證密碼,但是看到這對於用戶忘記密碼並不重要,我在引用中沒有提到。不管怎麼說,還是要謝謝你。 –

+0

*問題,而不是報價 –

回答

3

安全性會降低到您存儲「隨機令牌」的方式,我認爲這根本就不安全。沒有最佳做法。你可以將主密碼寫在一張紙上,並將其鎖在銀行的保險箱或類似的東西上。

甚至更​​短:在不信任別人的情況下,不能爲本地密碼管理器設置密碼重置功能。