我正在创建一个登录网站的 python 脚本(在这种情况下,它是更新 Tunnelbroker.net 的 IPv4 端点的 URL),它使用散列的用户名和密码。
我的问题是这个。如果我使用 echo mypassword | md5sum 它为我提供了与我找到的 python 脚本不同的哈希值(使用 hashlib 和 hashdigest 来完成任务)。
例如,如果“mypass”是robots,则echo robots | md5sum 给了我 2cf61812c352ec4fd0dae8f52874701d 但如果我通过 python 脚本运行它,我得到 27f5e15b6af3223f1176293cd015771d
我的问题很简单:该网站是否能够解密其中任何一个并获得“机器人”?我问这个,因为我想包含用于散列密码的 python 脚本的变体(以防最终用户使用 Windows 或其他无法生成 MD5 散列的操作系统)。
提前致谢,祝您有美好的一天:) 帕特里克。
md5而在同一个句子的密码给我发冷.. md5是一种单向散列函数,这意味着有应该没有办法“解密”一次哈希。它不是加密功能。但是,使用彩虹表(可能还有其他方式),您可以从md5散列中恢复一些常见字符串,这使得md5用于加密密码的想法变得更糟。
但无论如何,这是答案:
不,Python 脚本的答案是正确的。如果您使用,echo -n "robots" | md5sum您会看到它们是相同的:27f5e15b6af3223f1176293cd015771d
原因是echo会在它回显的字符串末尾附加一个换行符(惊喜!),添加-n不会打印换行符,因此给你正确的结果。
或者,您可以简单地使用md5sum -s "robots"或md5 -s "robots"生成散列而不使用echo.
参考echo:
echo 实用程序将任何指定的操作数写入标准输出,这些操作数由单个空白 (
' ') 字符分隔并后跟换行符 (\n) 字符。
| 归档时间: |
|
| 查看次数: |
192 次 |
| 最近记录: |