可以解密 SHA 或 MD5 結果嗎?
我了解到 SHA-1 和 MD5 是單向雜湊函式,這意味著無法通過反向計算獲得原始值。
然而,有些線上網站將散列函式“解密”為原始值。我嘗試在 Linux 命令行中解密,但似乎只能使用
sha1sum
命令對輸入進行雜湊處理。我只是好奇是否可以進行反向計算。
MD5、SHA-1、SHA-256 等是單向函式:給定輸入的雜湊值,沒有人知道如何比猜測更好地找到輸入,世界上最好的密碼學家都嘗試過。
但猜測總是有可能的。您只需嘗試大量輸入,直到找到具有所需雜湊值的輸入。如果輸入是一個小集合的成員,例如如果你知道它是一個字典單詞,這可以很快完成。另一方面,如果輸入包含足夠多的未知位,那是不可行的。例如,如果輸入包含 128 個隨機位,那麼大約需要 10 億個宇宙年齡的 PC 才能獲得找到正確輸入的良好機會。
您找到的網站不會“解密”任何內容。他們所做的是,他們計算了很多雜湊值並將它們儲存在數據庫中。當您要求他們反轉雜湊時,他們會在數據庫中查找它。這僅在雜湊是他們在數據庫中擁有的雜湊時才有效。
¹說每台電腦每秒進行 2³⁰ 計算,乘以 2³⁰ 電腦。宇宙的年齡大約是 2⁶⁰ 秒,給你 2⁻⁸ 的成功機會。
不,它們不能被解密。這些函式是不可逆的。沒有確定性算法可以評估特定散列的原始值。
但是,如果您使用加密安全的雜湊密碼雜湊,那麼您仍然可以找出原始值是什麼。這些函式旨在為大量數據/文件生成雜湊碼。這就是為什麼它們被設計得非常快。在大量輸入上計算 MD5 和 SHA1 雜湊並使用它來創建反向查找表相對容易。
有許多免費的網站。這裡只有一個例子:http: //md5decrypt.net/en/。在那裡輸入
d0763edaa9d9bd2a9516280e9044d885
並按“解密”。如果您提出問題的原因是我應該使用什麼算法進行密碼散列?,查找“密碼拉伸”。根據您使用的平台,請考慮bcrypt、scrypt、argon2。