Why is my command-line hash different from online MD5 hash results?
On a Mac OS X v10.5 (Leopard) PowerPC, if I do:
echo "hello" | md5on the command line, the result is:
b1946ac92492d2347c6235b4d2611184
But if I enter hello into one of the online MD5 hash sites like http://md5online.net/, I get:
5d41402abc4b2a76b9719d911017c592
Am I doing something wrong? If I want to use MD5 on the go, how can I make sure what I'm getting on the command line will agree with the online md5 tools?
When you echo from the command line, md5 is calculating the sum of 6 characters - h,e,l,l,o plus newline. The text you enter in a website doesn't have a newline.
Try doing
echo -n hello | md5
and it'll give you what you expect. The -n tells echo not to output a newline.
You can also use printf instead of echo, which automatically suppresses the newline character:
printf hello | md5
Or even:
printf "hello" | md5