为什么我的命令行哈希与在线MD5哈希结果不同?


21

Mac OS X v10.5(Leopard)PowerPC上,如果我这样做:

回声“你好” | md5
在命令行上,结果是:

b1946ac92492d2347c6235b4d2611184

但是,如果我向在线MD5哈希站点之一(例如http://md5online.net/)打招呼,则会得到:

5d41402abc4b2a76b9719d911017c592

难道我做错了什么?如果我想在旅途中使用MD5,如何确保在命令行上获得的内容与在线md5工具一致?


在Windows上,Total Commander创建了MD5校验和,为我工作。与在线版本相同。
斯纳克(Snark)2009年

谢谢,斯纳克。Rudedog至少在POSIX系统上,在命令行上使用md5时解决了该问题。如果可以的话,给他+1。我太新了
pellea72

Answers:


40

当您从命令行回显时,md5正在计算6个字符的总和-h,e,l,l,o和换行符。您在网站上输入的文字没有换行符。

尝试做

echo -n hello | md5

它会给您您所期望的。-n告诉echo不要输出换行符。


哎呀。我没有注意到'-n'标签。你是对的Rudedog。那行得通。谢谢。
pellea72

3

您还可以使用printf代替echo,它会自动禁止换行符:

printf hello | md5

甚至:

printf "hello" | md5

2

b1946ac92492d2347c6235b4d2611184 ist只是字符串的md5

hello

5d41402abc4b2a76b9719d911017c592 ist的md5

hello

CR +低频

CR + LF是Windows的换行符。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.