28

On a Mac OS X v10.5 (Leopard) PowerPC, if I do:

echo "hello" | md5 
on 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?

2
  • Works for me on Windows with Total Commander creating the MD5 checksum. Same as the online version.
    – Snark
    Nov 17, 2009 at 8:04
  • Thanks, Snark. Rudedog solved the problem when using md5 on the command line, at least for POSIX systems. Give him a +1 if you can. I'm too new.
    – pellea72
    Nov 17, 2009 at 8:13

4 Answers 4

52

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.

2
  • Oops. I didn't notice the '-n' tag. You're right Rudedog. That worked. Thanks.
    – pellea72
    Nov 17, 2009 at 8:11
  • Thanks @Rudedog your answer from 12 years ago just saved my sanity!
    – Bill Gale
    Mar 25, 2021 at 0:06
4

You can also use printf instead of echo, which automatically suppresses the newline character:

printf hello | md5

Or even:

printf "hello" | md5
1

b1946ac92492d2347c6235b4d2611184 ist the md5 of just the string

hello

5d41402abc4b2a76b9719d911017c592 ist the md5 of

hello

CR+LF

CR+LF is the Windows newline.

1
  • -1. Totally mixed up. Sole hello gives 5d…; helloLF gives b1…; helloCRLF gives af5597c29467a96523a70787c319f4db. Feb 2 at 17:14
0

Depends on how you call (OSx), bash and zsh add newline character by default.

echo "123" | md5

ba1f2511fc30423bdbb183fe33f3dd0f


echo "123" | tr -d "\n" | md5        

202cb962ac59075b964b07152d234b70

echo -n "123" | md5           

202cb962ac59075b964b07152d234b70

printf "123" | md5

202cb962ac59075b964b07152d234b70

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.