我正在创建一个python脚本,它可以登录到一个网站(在本例中,它是更新IPv4端点的url)Tunnelbroker.net网站),它使用哈希用户名和密码。在
我的问题是这个。如果我使用echo mypassword | md5sum,它会给我一个与我找到的python脚本不同的哈希(使用hashlib和hashdigest来完成任务)。在
例如,如果“mypass”是robots,echo robots | md5sum会给我2cf61812c352ec4fd0dae8f52874701d,但如果我通过python脚本运行它,则得到27f5e15b6af323f1176293cd01571d
我的问题很简单:这个网站能解密其中任何一个并得到“机器人”吗?我之所以这么问,是因为我希望包含一个python脚本的变体,用于散列密码(以防最终用户在Windows或其他无法生成MD5哈希的操作系统上)。在
提前感谢,祝您今天愉快:) 帕特里克。在
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
的引用:What password hashing algorithm to use?
字符串“robots\n”的MD5是2cf61812c352ec4fd0dae8f52874701d
字符串“robots”的MD5是27f5e15b6af323f1176293cd01571d
md5sum robots
给了你什么?在相关问题 更多 >
编程相关推荐