从已知输入和输出反向工程哈希函数

时间:2012-11-07 23:36:23

标签: hash

这个概念实际上非常简单,涉及从已知的输入和输出中找出哈希函数。

是否有工具(我在linux上)可以快速找到这些信息?

示例:

  

秘密 - fc683cd9ed1990ca2ea10b84e5e6fba048c24929

知道上面的两个值,这个假想的机器会打印出 sha1sum

请原谅我的初学者心态,我是新手,在空闲时间学习这个话题。

1 个答案:

答案 0 :(得分:3)

假设输入字符串X保证产生输出散列Y,您可以构建一个使用每种编码类型的程序。

伪代码:

hash = "fc683cd9ed1990ca2ea10b84e5e6fba048c24929";
input = "secret"

if (md5(input) == hash)
    return "md5";
else if (sha1(input) == hash)
    return "sha1";
//etc...
else
    return "Unknown"

编辑:有关为何无法“反转”md5等哈希值的详细信息,请参阅How come MD5 hash values are not reversible?

编辑2:我做了一些搜索,发现了这个:http://code.google.com/p/hash-identifier/ - 它看起来非常全面,所以看一看。