2016-10-28 36 views
0

我聽說我們不應該依賴Adler32,我想問爲什麼。Adler32易於解密,爲什麼?

爲什麼我們不應該信任Adler32來散列?它是否可逆?或者我們能否輕鬆看到真實的文字?

+0

魔法哈希 - > https://www.whitehatsec.com/blog/magic-hashes/ – DejaVuSansMono

+0

更大的問題,爲什麼要使用Adler32而不是SHA2或SHA3家族成員(如SHA-256),並只需要儘可能多/少數需要的位。 Adler-32是一種校驗和算法,可以爲速度交易可靠性。但是在今天的計算機上SHA-256通常很快。在我的筆記本電腦上,我可以在3 mSec的1MB數據上運行SHA-256。 – zaph

+0

@zaph我只是好奇爲什麼adler32不可靠。它是否可逆? –

回答

0

絕對不能使用Adler32進行密碼散列。

對於短輸入,可以從8位CRC獲得大量信息。通常,對於密碼散列,輸入數據中的一位變化將會改變50%的輸出位。

它不是爲了避免碰撞而設計的,它是一個CRC。許多散列函數被設計用於碰撞不是問題的其他目的,例如字典查找或「瓶子俱樂部」中的存儲箱,它只使用會員編號的最後幾位數字來實現瓶子在存儲箱中的分佈有點均勻。

密碼安全:

只使用一個哈希函數是不夠的,僅僅加入鹽無助於提高安全性。取而代之的是用隨機鹽在HMAC上進行大約100ms的持續時間,然後用散列表保存鹽。使用PBKDF2,password_hash,Bcrypt等功能。關鍵是要讓攻擊者花費大量時間通過強力查找密碼。

爲什麼SHA-512鹽不夠用的一個原因是筆記本電腦(我的)每秒可以執行750,000次,這將應用於按使用頻率排序的10,000,000個密碼的列表然後有特殊程序即模糊那些。除非是釣魚,否則攻擊者可能會對90%的密碼破解感到滿意。所以通過將計算機時間從< 2us延長到> 100ms,攻擊者需要5萬倍的時間,他可能會移動到下一個站點。

保護您的用戶非常重要,請使用安全的密碼方式。

這就是爲什麼:攻擊者擊中你的站點,獲取MD5密碼,用普通密碼列表蠻力並擁有用戶的用戶名和密碼。現在,攻擊者在另一個站點上使用此功能,因爲大多數用戶都重複使用密碼,所以可以訪問更敏感的數據。您剛剛幫助妥協了用戶。注:一個體面的黑客率可能是10億/秒。攻擊者會喜歡你的網站,你甚至不知道它被成功攻擊。

+0

謝謝你的回答,當然,我會用最好的當前方法。我只是好奇而已。 –

1

一個不「解密」一個散列,而一個散列並不隱藏「真正的文本」 - 加密,而不是散列,這樣做。但是,如果你的意思是,Adler-32可以用作加密散列嗎?那麼絕對不行。對密碼哈希的要求是,對於可預見的硬件和數學來說,使用給定的哈希來構造消息是非常困難的,實際上是不可能的。對於Adler-32來說這很容易,而且實際上對於32位散列來說很容易。 32位是不夠的。

+0

因此,您可以通過嘗試輕鬆獲得相同的散列,並且無法看到明文,因爲它不包含它。我得到正確嗎? –

+0

沒有明文。沒有加密。對於這個討論,所有的都有一個消息和它的散列。信息可以用簡單的英文。 「加密」哈希被設計爲使得構建具有完全相同哈希的另一消息,任何其他消息是不可行的。 –

相關問題