Por que meu hash da linha de comando é diferente dos resultados do hash MD5 on-line?

21

Em um PowerPC do Mac OS X versão 10.5 (Leopard), se eu:

eco "olá" | md5
na linha de comando, o resultado é:

b1946ac92492d2347c6235b4d2611184

Mas se eu digitar o hello em um dos sites de hash MD5 on-line, como http://md5online.net/ , recebo:

5d41402abc4b2a76b9719d911017c592

Estou fazendo algo errado? Se eu quiser usar o MD5 em movimento, como posso garantir que o que estou recebendo na linha de comando esteja de acordo com as ferramentas online do md5?

pellea72
fonte
Funciona para mim no Windows com o Total Commander criando a soma de verificação MD5. O mesmo que a versão online.
213 Snark
Obrigado, Snark. A Rudedog resolveu o problema ao usar o md5 na linha de comando, pelo menos nos sistemas POSIX. Dê a ele um +1, se puder. Eu sou novo demais.
Pellea72 17/11/2009

Respostas:

40

Quando você ecoa na linha de comando, o md5 calcula a soma de 6 caracteres - h, e, l, l, o mais nova linha. O texto digitado em um site não possui uma nova linha.

Tente fazer

echo -n hello | md5

e vai lhe dar o que você espera. O -n diz ao eco para não gerar uma nova linha.

Rudedog
fonte
Opa Não notei a tag '-n'. Você está certo, Rudedog. Isso funcionou. Obrigado.
Pellea72 17/11/2009
3

Você também pode usar printf em vez de echo, o que suprime automaticamente o caractere de nova linha:

printf hello | md5

Ou até:

printf "hello" | md5
TrekCzar
fonte
2

b1946ac92492d2347c6235b4d2611184 é o md5 da string

hello

5d41402abc4b2a76b9719d911017c592 é o md5 de

hello

CR + LF

CR + LF é a nova linha do Windows.

user1863
fonte
1

Para adicionar meus 5 centavos e estender a resposta: no Linux não é md5, é md5sum, então você deve fazer:

echo -n hello | md5sum
Simon Ernesto Cardenas Zarate
fonte