Hash MD5是否对其字符串进行哈希或加密?

Hash MD5是否对其字符串进行哈希或加密?,hash,md5,encryption,Hash,Md5,Encryption,MD5是对字符串进行散列还是加密?如果它对其进行散列,则正如他们所说的那样,单向散列函数和原始字符串(或数据)不可通过生成的散列恢复,因为它仅用于身份验证。那么我们如何解释MD5解密的在线网站呢?我真的试过了,它恢复了原来的字符串。这里有一个网站可以做到这一点: 这怎么可能?MD5是一个加密哈希函数。它将可变长度字符串映射为128位哈希值。这是单向的,但代码可以通过使用快速破解。更不用说你发布的网站说它有 总共超过87亿个唯一解密MD5哈希 因此,它可以在需要尝试破解之前先检查这些字符串。MD5

MD5是对字符串进行散列还是加密?如果它对其进行散列,则正如他们所说的那样,单向散列函数和原始字符串(或数据)不可通过生成的散列恢复,因为它仅用于身份验证。那么我们如何解释MD5解密的在线网站呢?我真的试过了,它恢复了原来的字符串。这里有一个网站可以做到这一点:


这怎么可能?MD5是一个加密哈希函数。它将可变长度字符串映射为128位哈希值。这是单向的,但代码可以通过使用快速破解。更不用说你发布的网站说它有

总共超过87亿个唯一解密MD5哈希


因此,它可以在需要尝试破解之前先检查这些字符串。

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

然而,MD5有许多加密弱点,并已被其他各种哈希函数(SHA系列)所取代。如果需要加密安全性,我强烈建议不要使用MD5,因为有更好的算法

希望这有帮助

他们不会“解密”,他们会找到一个与你的哈希匹配的字符串,这不是同一件事,但当你限制自己使用普通英语单词时,很可能是这样

为了理解发生了什么,你必须考虑可能的MD5散列- 2 ^ 128,这比英语中的单词数(2 ^ 16?)要多,但远小于所有可能的字符串值2(因特网上有多少位,然后有一些)

当您从一个较小的集合转换为一个较大的集合(英语->MD5)时,所有的值可能都会不同,但反过来就不一样了


一句话:使用一个不是谷歌在网上任何地方都能找到的字符串的密码。

-1因为,好吧,请搜索。我推荐Wikipedia(即Wikipedia)作为此类介绍性问题的一般起点。@pst我读了很多关于MD5的书,我只是想问,如果这些网站所说的是单向散列函数,它们如何解密散列?该网站清楚地解释说,它们有一个MD5散列->字符串条目的数据库。你只是在做一个查找。一些相关的SO问题(通过搜索很容易找到):,,(等)@JonathonReinhart,很明显,在它发明后的几年内,数据库会变得越来越大,将来可能会解密任何散列,对吗?这对使用MD5的浏览器和基于互联网的应用程序安全吗?