Preimage-Resistance
彩虹表可以找到雜湊的原像嗎?
給定一個雜湊值,你應該如何找到它的原像?我可以採取哪些步驟來解決找到雜湊的原像,例如這個 2d202cb6a781edf6ac01d14e1dd6367497db90ba9e8ad721fd17239228a213f9 (SHA256)
找到雜湊值原像的唯一方法是猜測。沒有比通過蠻力嘗試所有可能的輸入直到找到匹配項更好的方法了。此屬性是密碼散列函式(原像抗性)的設計目標。
彩虹表無助於尋找原像。相反,它是一種工具,可以幫助您重用其他人的蠻力工作。如果彩虹表包含 1 萬億個條目,那麼您可以使用它在短時間內找到這 1 萬億個雜湊值中的任何一個的原像。但是這張表的製造者必須進行 1 萬億次雜湊計算。彩虹表(偶爾)有用的原因是,一旦建構了表(一次性成本很高),您可以根據需要進行任意數量的查詢(每次查詢的成本非常低)。如果您有理由相信原像在表中的 1 萬億個中,這將很有用——如果原像不是其中之一,那麼所有彩虹表都會告訴您它絕對不是其中之一。請參閱Crunge 在 Security Stack Exchange 上的回答很好地解釋了彩虹表的工作原理。
實際上,在 Google 上查找雜湊值是查找一些簡單原像的一種不費力的方法。當這不起作用時,它往往表明綁定以反轉雜湊不會是解決問題的最簡單方法。
在您的問題中查找雜湊值會找到一份家庭作業的部分副本,其中提到“您應該使用文件中提供的工具,但不限於這些工具。” 所述文件未包含在該作業的副本中,但它應該在您的文件中。您需要做的是解決任務,大概是弄清楚所提供的工具是如何工作的。