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

18

Em um PowerPC do Mac OS X v10.5 (Leopard), se eu fizer isso:

echo "hello" | md5 
na linha de comando, o resultado é:
b1946ac92492d2347c6235b4d2611184

Mas se eu inserir o olá em um dos sites de hash MD5 on-line, como o link , obtenho:

5d41402abc4b2a76b9719d911017c592

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

    
por pellea72 17.11.2009 / 09:00

3 respostas

36

Quando você faz eco a partir da linha de comando, o md5 calcula a soma de 6 caracteres - h, e, l, l, o mais nova linha. O texto que você insere em um site não tem uma nova linha.

Tente fazer

echo -n hello | md5

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

    
por 17.11.2009 / 09:07
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é mesmo:

printf "hello" | md5
    
por 03.10.2011 / 20:22
2

b1946ac92492d2347c6235b4d2611184 é o md5 de apenas a string

hello

5d41402abc4b2a76b9719d911017c592 é o md5 de

hello

CR + LF

CR + LF é a nova linha do Windows.

    
por 17.11.2009 / 09:08