网站是否能够解密哈希密码而不管它是如何进行哈希处理的?

时间:2012-10-21 06:36:22

标签: python hash md5

我正在创建一个登录到网站的python脚本(在这种情况下,它是更新Tunnelbroker.net的IPv4端点的URL),它使用哈希的用户名和密码。

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

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

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

提前致谢,祝你有个美好的一天:) 帕特里克。

2 个答案:

答案 0 :(得分:4)

md5和同一个句子中的密码让我感到寒意.. md5是一种单向散列函数,这意味着应该无法{ {3}}曾经哈希过。 不是加密功能。但是,对于"decrypt"(可能还有rainbow table),您可以md5哈希中恢复一些常见字符串,这样就可以使用{{1}加密密码甚至更糟。

但无论如何,这是答案:

不,Python脚本的答案是正确的。如果您使用md5,则会看到它们是相同的:echo -n "robots" | md5sum

原因是27f5e15b6af3223f1176293cd015771d会在它回显的字符串末尾添加换行符(惊喜!),添加echo将不会打印换行符,从而为您提供正确的结果。< / p>

或者,您只需使用-nmd5sum -s "robots"即可生成哈希,而无需使用md5 -s "robots"


echo的参考:

  

echo实用程序写入任何指定的操作数,分隔   单个空格(echo)个字符,后跟换行符(' ')字符,   到标准输出。

other ways

答案 1 :(得分:1)

字符串“robots \ n”的MD5是2cf61812c352ec4fd0dae8f52874701d

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

md5sum robots给你什么?