我正在创建一个登录网站的python脚本(在这种情况下,它是更新tunnelbroker.net的ipv4端点的URL),并且它使用Hashed用户名和密码。
我的问题是这个。如果我使用Echo MyPassword |MD5SUM它给了我与我发现的Python脚本不同的哈希(使用Hashlib和Hashdigest来完成任务)。
例如,如果" mypass"是机器人,则回声机器人|MD5SUM给我2CF61812C352EC4FD0DAE8F52874701D,但如果我通过Python脚本运行,我获得了27F5E15B6AF322223F1176293CD015771D
li>我使用的脚本可在http://wiki.python.org/moin/md5passwords 上找到我的问题简直就是这样:网站是否能够解密其中的任何一个并获得"机器人"?我问这个问题,因为我想在HASHING密码中包含Python脚本的变体(如果最终用户在Windows或另一个无法生成MD5 Hash的操作系统上)。
提前感谢,祝您有美好的一天:)帕特里克。
md5
和同一句子中的密码让我发冷.. md5
是一种单向哈希函数的类型,这意味着应该没有办法 解密"曾经被哈希。它不是一个加密函数。但是,使用彩虹表(可能是其他方法),您可以从md5
哈希恢复一些常见字符串,这使得使用md5
的想法更糟地加密密码。
但是无论如何,这是答案:
不,Python脚本的答案是正确的答案。如果使用echo -n "robots" | md5sum
,您会发现它们是相同的:27f5e15b6af3223f1176293cd015771d
原因是echo
将在字符串末尾附加一个newline字符(惊喜!),添加-n
不会打印Newline Char,因此给您正确的结果。
另外,您只需使用md5sum -s "robots"
或md5 -s "robots"
就可以生成哈希,而无需使用echo
。
echo
的参考:
回声实用程序写入任何指定的操作数,分开 由单个空白(
' '
)字符,然后是newline(n
)字符, 到标准输出。
要使用哪种密码哈希算法?
字符串"机器人 n"的MD5是2CF61812C352EC4FD0DAE8F52874701D
字符串"机器人"的MD5是27F5E15B6AF3223F1176293CD015771D
md5sum robots
给您什么?