hash - 根据已知的输入和输出对哈希函数进行逆向工程

标签 hash

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

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

示例:

secret - fc683cd9ed1990ca2ea10b84e5e6fba048c24929

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

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

最佳答案

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

伪代码:

hash = "fc683cd9ed1990ca2ea10b84e5e6fba048c24929";
input = "secret"

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

编辑:参见How come MD5 hash values are not reversible?了解有关为何无法“反转”MD5 等哈希值的更多信息。

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

关于hash - 根据已知的输入和输出对哈希函数进行逆向工程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13280175/

相关文章:

ruby - 查看哈希值是否相同

hash - 加密哈希算法可以用作 PRNG 吗?

java - 如何在java中生成任何文件的哈希值?

Javascript HashTable 使用对象键

PHP在问号后获取哈希

python - Python(或 C)中的内存高效字符串到字符串映射

ruby - 向数组添加哈希?

c++ - 使用 Crypto++ 生成 SHA256 哈希,使用字符串作为输入和输出?

c# - SHA256 计算的哈希值似乎有问题

python - 值为字典 : trying to sum across those keys in python 的字典