2012-12-27 85 views
-1

MD5散列字符串还是加密它?如果它散列化,那么它就像他们所说的单向散列函数一样,并且原始字符串(或数据)由所产生的散列不可恢复,因为它仅用于认证。那么我们如何解释在线网站的MD5解密?我真的尝试过它,它会取回原始字符串。这里是一个这样的网站:http://www.md5decrypter.co.uk/MD5散列或加密其字符串?

这怎么可能?

+2

-1因为,好吧*请搜索*。我推荐维基百科 - 即[MD5](http://en.wikipedia.org/wiki/MD5http) - 作为此类介绍性问题的一般起点。 – 2012-12-27 21:52:15

+0

@pst我读了很多有关MD5的信息,我只是问这些网站如果像他们说的单向散列函数那样如何解密散列? –

+0

该网站清楚地说明他们有一个MD5散列 - >字符串条目的数据库。你只是在做一个查询。 –

回答

1

MD5是一种哈希算法,意思是它将任意长度的字符串映射到某个固定长度的字符串。目的是使它很难从MD5散列的输出开始,并恢复一些散列到该输出的特定输入。因为有无限多的字符串和有限的输出,它不是一个加密函数,只给出输出就无法确定哪个输入产生了输出。

但是,MD5有很多密码方面的弱点,并且已被各种其他散列函数(SHA系列)所取代。如果需要加密安全性,我强烈建议不要使用MD5,因为这里有更好的算法。

希望这会有所帮助!

1

MD5是一个密码散列函数。它将可变长度的字符串映射到128位散列值。这是单向的,但代码可以使用Rainbow Tables快速破解。更何况您发布的网站说,它有

总共刚刚超过8.7十亿独特解密MD5哈希值...

所以它可以检查对那些第一次之前就需要尝试破解它。

0

他们不“解密”,他们发现一个字符串匹配你的散列,这是不一样的事情,但当你限制自己的普通英文单词时,它可能很好。

要理解发生了什么事情,您必须考虑可能的MD5哈希计数 - 2^128,这比英文单词数(2^16?)多得多,但比所有可能的字符串值少得多2^(互联网有多少位,然后是一些)

当你从一个较小的集合转换成一个更大的集合(英文 - > MD5)时,它可能所有的值都会不同,但反过来是不正确的。

底线:使用的密码不是可以在网上任何地方找到的字符串。