2010-06-15 68 views
10

我想,这是不可能解码md5散列,但我发现工具,它们解码它们here。但我不知道,他们是如何在如此短的时间内完成的(大约需要一秒)。md5解码。他们怎么做?

请帮我理解它。

感谢

+4

它在网站上告诉你:“这个工具在多个数据库中搜索未经编码的MD5哈希版本。” - 基本思想:很多人在数据库中添加随机MD5哈希,并且只需在进入时反向查找它们哈希值。与解码无关。 – poke 2010-06-15 21:17:34

+1

为什么很难想象?磁盘空间很便宜。在MySQL中(假设密钥少于255字节),每行只能在40到300字节之间。所有你需要做的就是编写一个脚本来解析一个字典并添加每个单词的md5 ...... – ircmaxell 2010-06-15 21:20:51

+1

即使使用普通单词的md5哈希也能产生好的效果。 – 2010-06-16 13:51:40

回答

19

它不解码MD5散列。它使用所谓的rainbow table ...这就是为什么使用salted hashes而不是直接存储散列非常重要...

+2

盐渍的哈希仍然可以被打破。 – rook 2010-06-15 21:35:07

+0

从技术上讲,彩虹表甚至不适用于这种情况,因为有无数的可能的字符串被散列。该网站只是使用“常见”散列数据库。 Rainbow tables!=数据库查询。 – Charles 2010-06-15 22:04:29

+1

@Charles,我没有看到网站描述他们确切的数据库模式的任何地方,所以我不清楚为什么你已经断定没有彩虹表。 – 2010-06-15 22:41:12

0

一般,这仍然是难以计算的。但是,rainbow tables有助于查找已知的预先图像。它仅在预映像基于常用字符串(例如字典单词)且不使用盐时才起作用。这就是他们所说的“这个工具搜索多个数据库”。

4

这是不可能的解码MD5哈希,因为它是一种单向算法,他们将有一个预先计算的散列数据库以及用于生成散列并执行查找的字符串。

2

上面清清楚楚地写着:这个工具搜索多个数据库的MD5散列

3

的未编码版本的Web页面实际上包含了答案:

该数据库包含数以百万计的MD5 哈希和他们的解密形式。

如果你散列一个像“Hello World”这样稍微微不足道的字符串,那么它就存在于该db中。但是输入一些很奇怪的文字,比如“H3ll0 Whrrl3d!?!”并且“转换”将失败,因为它不会存在于散列数据库中。 (虽然我的 “怪异” 的字符串似乎越来越解码?!?)

重要:


  • 注意从该网站:任何数据是MD5加密存储进行查找。使用这种形式

笑不编码的敏感数据。这就是为什么你与网站一起散列的任何东西都会以解码的形式回来!每次你使用该网站进行散列操作时,都会增加数据库的大小和容量!

+0

不是彩虹桌。 – Charles 2010-06-15 22:05:06