【发布时间】:2014-12-03 14:29:17
【问题描述】:
我正在查看 HashCatt(任何其他工具都可以)来确定一个经过 MD5 散列的字符串。 我知道字符串的主要部分,但是中间有一个我不知道的变量,我该如何进行暴力破解?
例如。原始字符串是"fresh " + {type of fruit} + " is tasty!",我想知道水果的类型。
【问题讨论】:
标签: md5
我正在查看 HashCatt(任何其他工具都可以)来确定一个经过 MD5 散列的字符串。 我知道字符串的主要部分,但是中间有一个我不知道的变量,我该如何进行暴力破解?
例如。原始字符串是"fresh " + {type of fruit} + " is tasty!",我想知道水果的类型。
【问题讨论】:
标签: md5
你必须列出你知道的每种水果,用那种水果构建字符串,然后计算哈希值并进行比较。
MD5 不是逆向工程的,也不是加密的,所以这是你弄清楚它的唯一方法。并且仅当您拼写完全相同并使用相同的字符串编码时(即,如果字符串是 UTF8 并且您使用 UTF16 进行编码,则它不会运行)。
【讨论】:
您是否知道可能变量的取值范围,或者您能估计一下吗?如果是这样,它会减少蛮力的范围。这可能是您最好的方法。
值得认识到的是,使用精心设计的哈希算法,理想情况下,您不应该能够从 string > hash 转换中得出关于 string + second_string > hash 输出的任何结论。要使用您提供的示例,“新鲜苹果好吃!”的 MD5 输出是53aff0275a241760e654b3fe0e2184c4 - “新鲜橙子好吃!”的输出是e7c124fef3816ba5a6d6917e20bd5a8b。非常不同的结果。因此,如果您要寻找的是一种拆分哈希输出并只关注子字符串或其他东西的方法,那么您将找不到它。你最好的选择是减少蛮力的范围。
【讨论】: