MD5()生成一个哈希(散列),而不是一个加密字符串。因此,从原则上讲,您无法解密它。但研究表明,MD5是可破解的,但似乎过于复杂以至于难以研究。
引用自http://www.win.tue.nl/hashclash/rogue-ca/中的“今天认为MD5是有害的”:
使用私钥签署数据的加密操作并不直接处理数据本身,而是处理一个被认为是唯一的、具有预定固定长度、短且方便处理的表示该数据的方式。这可以类比于指纹,作为一个被认为是唯一的、短小而方便的表示人类的方式。创建这样的数据简短表示的过程称为“哈希”。不幸的是,由于哈希的固定长度,必须存在产生相同哈希值的不同输入对。然而,好的哈希函数具有发现这样的对极其困难的属性,尽管它们保证存在。这正是MD5存在关键弱点的地方。
理论上,MD5是无法被解密的。
实际上,有许多MD5“解密器”,但它们使用暴力破解或已解密代码的大型数据库等方法。上面的回答者可能使用了其中之一。可能的组合数量是1后面跟着48个零……足够终身使用。
MD5不是一种加密算法。它是一种单向哈希算法,因此在没有攻击的情况下,您不应该能够从MD5哈希中获取密码。
这个想法是从密码生成哈希值,然后当提供密码时,您可以确认它哈希到相同的值。您不应该能够反过来。
最好的相对简单的方法是在谷歌中搜索哈希值。例如:
73868cb1848a216984dca1b6b0ee37bc
是stackoverflow
的哈希值。 - Álvaro González