2017-04-10 136 views
1

嘿傢伙我已經做了一些關於加密的研究,並瞭解它是如何工作的以及它由什麼組成,但我還沒有完全理解如何實現密碼加密。cordova密碼加密

我試圖加密正在發送到我的數據庫的密碼,我該如何實現?

謝謝你提供的傢伙,我不得不看看哈希表中的信息, 我在假設哈希表基本數值轉換爲例如不同的值修正:

VAR哈希表= { 1:[1,10,5],2:[2],3:[3,30,300]}

然後將新值傳遞給數據庫?

希望任何和所有的幫助在此先感謝!

+1

要知道的第一件也是最重要的事情是,你絕不應該*加密*密碼,你應該*加密*它們 - 不同之處在於加密意味着你有解密它們的方法,但是哈希表示你只能比較輸入,並說出它是否匹配,而不能恢復原始數據。 – IMSoP

+1

**不要加密密碼**,當攻擊者獲取數據庫時,他也會得到加密密鑰。使用隨機鹽在HMAC上迭代大約100毫秒的持續時間,並用散列表保存鹽。使用諸如'password_hash','PBKDF2','Bcrypt'或類似函數的函數。關鍵是要讓攻擊者花費大量時間通過強力查找密碼。 – zaph

+0

感謝您的解釋傢伙我很感激它,讓我看看我能找到什麼哈希和如何實現= D –

回答

0

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

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

Cryptographic hash functions比問題中的示例複雜得多,它們的輸出不能與隨機位/字節區分開來,輸入上的一位變化本質上導致50%或輸出位發生變化,而且它們不可逆。

+0

謝謝Zaph真的很感謝幫助偉大的答案。 –