2013-12-18 179 views
0

我已經使用SHA1算法的鹽技術來哈希密碼在我的網站。有什麼方法可以解密密碼並恢復原始密碼?哈希密碼如何解密?

+6

你不能這樣做。散列是一個單向過程。 –

+1

如果你*不想*能夠恢復密碼,那麼整個問題就是哈希。您仍然可以使用它來驗證密碼,方法是使用文本重複哈希處理來檢查和比較輸出。 –

+0

你不能「解密」散列密碼。但是SHA1相對於暴力攻擊來說相對容易。如[此處](http://www.codinghorror.com/blog/2012/04/speed-hashing.html)所述,您可能需要切換到[bcrypt](http://en.wikipedia.org/wiki/Bcrypt)或[PBKDF2](http://en.wikipedia.org/wiki/Pbkdf2)。 – Corak

回答

3

散列不加密/解密。

當我們散列一些東西時,我們從一組特定的字節中派生出一個數字(或字符序列),以便同一組字節產生相同的哈希碼。這是一個單向過程,我們不能回頭。

通過加密,我們使用算法將字節序列轉換爲不再類似於原始內容的算法,但如果我們知道它是如何加密的,我們可以對其進行解密。

當我們不需要知道原始內容是什麼時,散列是有用的。一個很好的例子就是密碼(你在文章中提到)。我們在數據庫中存儲版本(含salt)的散列。當用戶再次登錄時,我們散列他們輸入的密碼。如果兩個哈希匹配,那麼它必須是相同的密碼。但是,我們從來沒有透露密碼實際上是,並且它不是以純文本形式存儲在數據庫中。