Inconsistências nas somas de verificação MD5

2

Estou tentando obter o hash md5 de uma string. A referida cadeia consiste apenas em letras maiúsculas e minúsculas e dígitos. Nenhum outro caractere, incluindo espaços e novas linhas. A string é inserida por meio de um teclado, em vez de uma entrada de arquivo, portanto não há listas de materiais ou outras bandeiras presentes.

Se eu correr localmente usando md5sum , recebo a seguinte saída:

ubuntu@ubuntu:~$ echo word | md5sum 
a46ec67a0f2e7c387926ac5d783ea4b8 - 

ubuntu@ubuntu:~$ echo "word" | md5sum
a46ec67a0f2e7c387926ac5d783ea4b8  - 

ubuntu@ubuntu:~$ echo "word" -n | md5sum
3a21ca21563e9535a9012daef61a0bdf  -

Eu sei que a diferença entre a segunda e a terceira saída acima de se deve à ausência do caractere de nova linha (%código%). Esta parte é clara para mim . (Acontece que não foi! Veja a resposta aceita.)

No entanto, existem ferramentas que dão um terceiro resultado. Todas as ferramentas não-CLI parecem dar o mesmo resultado, e é isso que me confunde:

  • O link diz que é -n .
  • O link diz que é c47d187067c6cf953245f128b5fde62a .
  • O link diz que é c47d187067c6cf953245f128b5fde62a .
  • O link diz que é c47d187067c6cf953245f128b5fde62a .
  • O link diz que é c47d187067c6cf953245f128b5fde62a .
  • Este aplicativo para Android diz que é c47d187067c6cf953245f128b5fde62a .
  • c47d187067c6cf953245f128b5fde62a me dá echo -n "word" | unix2dos | md5sum .

O que está acontecendo aqui?

    
por That Brazilian Guy 22.01.2015 / 17:33

1 resposta

4
$ echo "word" -n | md5sum
3a21ca21563e9535a9012daef61a0bdf  -
$ echo "word -n" | md5sum
3a21ca21563e9535a9012daef61a0bdf  -
$ echo "-n" word | md5sum
c47d187067c6cf953245f128b5fde62a  -

Especificamente, observe que:

$ echo "word" -n
word -n

Todas as opções devem vir antes dos argumentos não opcionais. Este é o caso na maioria dos programas, exceto alguns utilitários GNU, e é o caso em toda a implementação de echo ( echo é especial, no entanto, na maioria das strings começando com - são interpretadas como argumentos, apenas algumas opções são reconhecidas como tal).

    
por 22.01.2015 / 22:43