Algorithm 如何利用输入输出数据制作猜测函数的算法

Algorithm 如何利用输入输出数据制作猜测函数的算法,algorithm,math,Algorithm,Math,例如,输入数据为(数字、时间、ip)201622222019072222222127.0.0.1,输出数据为(11字节十六进制哈希键)a9485d3c334 我有很多数据,但我不知道哈希函数 所以我想知道如何使用大量的输入数据和输出数据猜测哈希函数的算法。没有确定的方法,但至少有一些方法可以尝试 网络搜索它。如果你能更好地控制输入。“123456”的散列为常用函数生成结果 查找具有相同长度输出的哈希函数(11字节看起来很奇怪,所以不会有太多),检查是否有任何输出 试着分析一下。如果它是一个非加密

例如,输入数据为(数字、时间、ip)201622222019072222222127.0.0.1,输出数据为(11字节十六进制哈希键)a9485d3c334

我有很多数据,但我不知道哈希函数


所以我想知道如何使用大量的输入数据和输出数据猜测哈希函数的算法。没有确定的方法,但至少有一些方法可以尝试

  • 网络搜索它。如果你能更好地控制输入。“123456”的散列为常用函数生成结果
  • 查找具有相同长度输出的哈希函数(11字节看起来很奇怪,所以不会有太多),检查是否有任何输出
  • 试着分析一下。如果它是一个非加密散列,您可以通过尝试许多类似的输入和检查输出来推断某种模式
  • 是否有代码或二进制代码可以分析

  • 尝试所有已知的散列函数,如果没有匹配的散列函数,则匹配结果。你运气不好……有无限多个设计完全不同的散列函数。因此,如果它不是一种常见的盐,你几乎没有机会猜到它。+他们可能也会使用盐,如果这是散列的话encryption@Spektre:这其实并不难,因为具有44位输出的所有常见哈希函数的集合如下:{}。数据结构的编码也很重要。例如,ip可以编码为字符串(“127.0.0.1”)或整数(2130706433)。这两种表示将给出不同的哈希结果。时间和数字参数也是如此。如果不知道使用了哪种编码,请确保尝试所有合理的编码。