解码md5:我们怎么可能解码md5?

时间:2011-04-29 03:10:11

标签: md5

在转换时,我们是否有可能有类似的md5哈希值具有不同的值? 如果是的话可能吗?你有没有尝试过在MD5之前解密的人?

4 个答案:

答案 0 :(得分:7)

暂时忘记md5。相反,想象你的散列函数真的很笨,它只是将源数据中每个字节的值加起来。

现在假设您的源数据只是两个字节:0x010x02,按此顺序排列。对于这些输入,散列值为3

问题是,你可以从许多其他字节序列得到3的相同答案:

0x01 0x01 0x01
0x00 0x03
0x03
0x02 0x01

...你明白了,希望你也看到,当你拥有的是散列值3时,不可能确切地知道哪些可能性是原始输入。< / p>

使用md5,算法要复杂得多,并且更好地避免碰撞,但原理是相同的。出于这个原因,它被称为“单向哈希”。

答案 1 :(得分:6)

哈希只是:输入的单向,精简值。许多输入可以产生相同的输出。

是的,不同的源数据可以产生相同的哈希(冲突)。

不,您无法从哈希中检索原始数据。

答案 2 :(得分:3)

如果MD5是salted MD5,那么它很可能永远不会像普通的MD5哈希一样。

答案 3 :(得分:3)

是的,可以使用不同的输入生成1个相同的哈希值。这称为碰撞。这种冲突是可能的,因为输入大小大于输出大小。阅读birthday attack,了解为什么这是散列中的坏事。

here是一篇关于MD5的文章因碰撞而被打破。