2012-10-21 128 views
1

我正在创建一个登录到网站的Python脚本(在这种情况下,它是更新您的IPv4端点Tunnelbroker.net的URL),并且它使用哈希用户名和密码。无论哈希密码是如何散列的,网站都能够解密哈希密码吗?

我的问题是这样的。如果我使用echo mypassword | md5sum它给了我一个不同于我发现的python脚本(使用hashlib和hashdigest来完成任务)的散列。

例如,如果“mypass”是机器人,回声机器人|的md5sum给我2cf61812c352ec4fd0dae8f52874701d但如果我通过Python脚本运行它,我得到27f5e15b6af3223f1176293cd015771d

我的问题是找到该脚本很简单:该网站将是能够解密其中的任何一个并获得“机器人”?我问这个问题,因为我想包含用于散列密码的python脚本的变体(如果最终用户在Windows或另一个无法生成MD5散列的操作系统上)。

在此先感谢,并有美好的一天:) 帕特里克。

+2

如果你加密了某些东西,你可以解密它,但是如果你散列一些东西,那是不可逆的。 – NightHawk

回答

4

md5并在同一个句子的密码给我发冷.. md5是一种单向散列函数,这意味着有应该没有办法"decrypt"一次散列。它是而不是的一种加密功能。然而,随着rainbow table(也可能other ways),你可以一个md5哈希,这使得使用md5加密密码更糟糕的念头恢复了一些常见的字符串。

但无论如何,这里就是答案:

不,Python脚本的答案是正确的。如果你使用echo -n "robots" | md5sum你会看到他们是相同的:27f5e15b6af3223f1176293cd015771d

原因是echo将在字符串的结尾追加一个换行符它的呼应,增加-n将不打印换行字符,因此给(惊喜!)你是正确的结果。

或者,你可以简单地使用md5sum -s "robots"md5 -s "robots"生成散列不使用echo


参考为echo

回波实用程序写入任何指定的操作数,由单个坯件(' ')字符分隔 和后跟一个换行(\n)字符, 到标准输出。

What password hashing algorithm to use?

1

字符串的MD5 “机器人\ n” 是2cf61812c352ec4fd0dae8f52874701d

字符串 “机器人” 的MD5是27f5e15b6af3223f1176293cd015771d

是什么md5sum robots给你?

+0

我想你的意思是'md5sum“机器人'' –