【问题标题】:How to brute force MD5 for a partially known string?如何对部分已知的字符串进行暴力破解 MD5?
【发布时间】:2014-12-03 14:29:17
【问题描述】:

我正在查看 HashCatt(任何其他工具都可以)来确定一个经过 MD5 散列的字符串。 我知道字符串的主要部分,但是中间有一个我不知道的变量,我该如何进行暴力破解?

例如。原始字符串是"fresh " + {type of fruit} + " is tasty!",我想知道水果的类型。

【问题讨论】:

标签: md5


【解决方案1】:

你必须列出你知道的每种水果,用那种水果构建字符串,然后计算哈希值并进行比较。

MD5 不是逆向工程的,也不是加密的,所以这是你弄清楚它的唯一方法。并且仅当您拼写完全相同并使用相同的字符串编码时(即,如果字符串是 UTF8 并且您使用 UTF16 进行编码,则它不会运行)。

【讨论】:

    【解决方案2】:

    您是否知道可能变量的取值范围,或者您能估计一下吗?如果是这样,它会减少蛮力的范围。这可能是您最好的方法。

    值得认识到的是,使用精心设计的哈希算法,理想情况下,您不应该能够从 string > hash 转换中得出关于 string + second_string > hash 输出的任何结论。要使用您提供的示例,“新鲜苹果好吃!”的 MD5 输出是53aff0275a241760e654b3fe0e2184c4 - “新鲜橙子好吃!”的输出是e7c124fef3816ba5a6d6917e20bd5a8b。非常不同的结果。因此,如果您要寻找的是一种拆分哈希输出并只关注子字符串或其他东西的方法,那么您将找不到它。你最好的选择是减少蛮力的范围。

    【讨论】:

    • 我想改进蛮力的范围是的,我在问我到底是怎么做到的,我曾短暂地尝试过尝试指定例如。 “新鲜” [a-z] “很好吃!”它会在字符串的那一部分中不断增加字符,我只是不知道该怎么做。我的问题是我如何实际做而不是如何合乎逻辑 - 如果这有意义
    • 嗯,范围是多少,您使用的是什么语言?
    • 不一定是单词,这个例子纯粹是,字符串中没有可理解的数据它都是随机字符所以我不知道它可能是什么或它有多长我只知道开始和字符串的结尾部分也是随机的(但在所有哈希中都是一致的)我也试图用HashCatt 解决这个问题,纯粹是因为那是我找到的最好的。如果有人有更好的方法,我很乐意接受建议
    猜你喜欢
    • 2013-05-21
    • 2023-03-12
    • 2022-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多