3

With a knowledge of how md5 works, would it be possible to use a population based algorithm such as genetic programming to break simple passwords?

For examples, given a md5 hash for a string that is between 5 to 10 characters, we are to try to get the string back.

If yes, what could be

  • A good representation for an individual of the population
  • Selction criteria
  • Recombination methods

This is to understand the application of genetic algorithms and to know if anyone has done anything of this sort.

4

4 回答 4

10

并不真地。

只需 5 个字符,您就可以在不太不合理的时间内对其进行暴力破解,但大概您对 GA 的询问比对破坏 MD5 的询问更多。问题是 MD5 哈希中没有可利用的结构。在任何有用的距离关系下,“靠近在一起”的字符串不会生成“靠近在一起”的散列。适应度函数基本上是随机的。

于 2011-05-02T16:02:32.503 回答
2

我认为答案是“不”。因为您无法获得任何交叉功能。适应度函数将是布尔值。只有变异算子和这种适应度函数的 GA 是一种蛮力。

于 2011-05-02T16:03:29.807 回答
2

不,这极不可能。

使用遗传算法,例如。用于查找某些函数的局部/全局最大值/最小值。对于 md5 哈希,如果更改计算 md5 哈希的值,则 md5 哈希完全改变,因此缩小输入值范围是完全没有用的。MD5 算法旨在在输入数据发生任何变化时散列生成的值。找到正确值的唯一可能性是当您应用突变时,但它会导致检查随机输入值是否生成给定的哈希(正如 oxilumin 所说,这只是一种蛮力攻击)。

您可以在此处阅读有关查找生成特定 md5 哈希值的更多信息(彩虹表)

于 2011-05-02T16:19:17.083 回答
0

虽然答案可能是“否”,但需要考虑一个警告:已发布的冲突是仅相差几个关键字节的字符串:https ://en.wikipedia.org/wiki/MD5#Collision_vulnerabilities

无法保证使用遗传算法猜测明文,但以这种方式发现冲突可能更有效。

或者如果它在 PHP 中并将 md5 哈希与==运算符进行比较...... https://eval.in/108854

于 2014-04-10T17:26:45.223 回答