2017-01-29 47 views
1

我想知道密碼是如何加密並存儲在服務器上的。 現在,如果在密碼加密中使用隨機數字,那麼當我們登錄時如果我們的密碼是真實的,我們的密碼是如何識別的?密碼加密如何工作?

+0

**不要加密密碼**,當攻擊者獲得數據庫時,他也會得到加密密鑰。 – zaph

回答

1

做這件事的一種常見方式不是加密密碼,而是散列它們。因此,您實際上並不存儲密碼,而是密碼的哈希值,因此當用戶登錄時您會對密碼進行哈希處理,然後比較哈希值與存儲值是否匹配。

爲了增加額外的安全性,「鹽」也是一個好習慣。例如,您將密碼與其他名稱和用戶名組合在一起。

+0

只使用散列函數是不夠的,只是增加一點鹽對提高安全性沒有多大作用。相反,用隨機鹽迭代HMAC約100ms持續時間,然後用散列表保存鹽。使用諸如「PBKDF2」(又名'Rfc2898DeriveBytes'),'password_hash' /'password_verify','Bcrypt'和類似函數的函數。關鍵是要讓攻擊者花費大量時間通過強力查找密碼。保護您的用戶非常重要,請使用安全的密碼方法。 – zaph