@ A resposta de Cyrus é exatamente a questão de como resolver isso - para explicar, ao usar echo , ela gerará uma nova linha no final da string. Como você pode ver nesta saída on-line, hello com uma nova linha gera exatamente o MD5 que você estava obtendo anteriormente. Usar -n suprime a nova linha e fornecerá o resultado esperado.

Editar:
Vocêpodeverissoclaramentesevocêexportarparahexdump,quemostraohexadecimaldosbyteslá.
$echo"str_example" | hd
00000000 73 74 72 5f 65 78 61 6d 70 6c 65 0a |str_example.|
Veja o 0a ( \n ) no final da string
$ echo -n "str_example" | hd
00000000 73 74 72 5f 65 78 61 6d 70 6c 65 |str_example|
Com -n echo não coloca uma nova linha ( \n ) no final
Agora com uma string vazia
$ echo "" | hd
00000000 0a |.|
Apenas o caractere New Line
$ echo -n "" | hd
String vazia, então hexdump não mostra saída