不管它是如何散列的,网站是否能够解密散列密码?

Pat*_*key 1 python hash md5

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

我的问题是这个。如果我使用 echo mypassword | md5sum 它为我提供了与我找到的 python 脚本不同的哈希值(使用 hashlib 和 hashdigest 来完成任务)。

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

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

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

K Z*_*K Z 5

md5而在同一个句子的密码给我发冷.. md5是一种单向散列函数,这意味着有应该没有办法“解密”一次哈希。它不是加密功能。但是,使用彩虹表(可能还有其他方式),您可以md5散列中恢复一些常见字符串,这使得md5用于加密密码的想法变得更糟。

但无论如何,这是答案:

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

原因是echo会在它回显的字符串末尾附加一个换行符(惊喜!),添加-n不会打印换行符,因此给你正确的结果。

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


参考echo

echo 实用程序将任何指定的操作数写入标准输出,这些操作数由单个空白 ( ' ') 字符分隔并后跟换行符 ( \n) 字符。

使用什么密码散列算法?