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?


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.


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

2

b1946ac92492d2347c6235b4d2611184 é o md5 da string

hello

5d41402abc4b2a76b9719d911017c592 é o md5 de

hello

CR + LF

CR + LF é a nova linha do Windows.


Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.