【发布时间】:2016-01-13 02:32:42
【问题描述】:
我知道,通过简单地对生成的数字使用数学运算,哈希是不可逆的,但我想知道是否有足够的信息来成功地反转哈希并准确地重新获得我开始使用的信息。
例如,我有一个文件,我通过md5() 运行它,得到6513F99D206D8714EA9EAA4A1EEA8538,然后我在文件底部添加一些可预测的垃圾并再次运行它得到CBB04474C52FF68F6B2AC38A9A8356A5。
由于我有来自同一个文件的两个不同的校验和,而且我确切地知道文件末尾的垃圾是什么,现在是否足以将可能的答案缩小到一个?
显然这对于安全性来说是不切实际的,但我非常好奇这种特定场景以及是否有(或曾经有)足够的信息来在数学上反转哈希。
【问题讨论】:
-
“现在是否有足够的信息将可能的答案缩小到一个?” - 你到底想弄清楚什么?如果文件内容已知且垃圾已知,那么目标是什么?
-
@Artjom B. 最后,我想知道是否可以通过数学准确地反转哈希。我想这与哈希中包含的信息无关,只是它可以恢复的事实。
-
我会说,这是不可能的,但这可能取决于散列函数。如果您有特定的哈希函数和明确的问题陈述,那么您可以在Cryptography 上提问。
-
哈希是有损的,无论你输入多少 MB,输出总是相同的大小。所以不可能有一个精确的数学方法来取回原始值,有无限可能的文件导致相同的哈希值。你可以做的是暴力破解,并希望在找到匹配项时找到真正的文件。
标签: math hash cryptography theory