Uma maneira mais simples de comparar a soma de verificação MD5?

Depois de baixar um arquivo que tem uma soma de verificação md5 disponível, eu o verifico atualmente com

md5 *file* | grep *given_checksum* 

ex.

md5 file.zip | grep -i B4460802B5853B7BB257FBF071EE4AE2 

mas me pareceu engraçado requerer o grep e o pipe para o que certamente é uma tarefa muito comum. Um defensor de fazer as coisas com eficiência, gostaria de saber se há uma maneira melhor de fazer isso?

Comentários

  • Que tipo de ferramenta é essa md5? De qual pacote ele vem?
  • Não ' percebi que era diferente até que realmente fiz esta pergunta e comecei a procurar as respostas, mas ' m usando bash no OS X e ' s da Apple ' uma ferramenta própria que não ' para ter a opção -c. Aparentemente, eles pararam de agrupar md5sum no 10.5 … Eu ' instalei a ferramenta unix md5sum original.

Resposta

md5sum tem uma -c opção para verificar um conjunto existente de somas e seus o status de saída indica sucesso / falha.

Exemplo:

$ echo "ff9f75d4e7bda792fca1f30fc03a5303 package.deb" | md5sum -c - package.deb: OK 

Encontre um bom recurso aqui

Comentários

  • Obrigado. Apenas para completar, agora uso md5sum -c - <<<"b4460802b5853b7bb257fbf071ee4ae2 file_name.ext" que parece mais limpo do que envolvendo grep!
  • hmm, não há muita melhoria para o arquivo $ md5 original | grep given_checksum e se quiser usar uma string que não faz distinção entre maiúsculas e minúsculas, você deve ficar com grep -i
  • Eu estava recebendo no properly formatted MD5 checksum lines found quando estava usando md5sum -c <file.md5> <file>, mas este comando funcionou para mim.

Resposta

A forma usual de bash seria:

shopt -s nocasematch if [[ $(md5sum "$file") = 5d40f31729c992b5a0e67490689fe8ff* ]] 

Resposta

md5sum -c <filename>.zip.md5 <filename>.zip 

Isso dirá a você Ok se eles forem iguais.

Isso funciona com o tar também.

Resposta

Inspirado pela resposta de psusi “s

echo "$(cut -f1 -d" " your_file.jar.md5) your_file.jar" | md5sum -c - 

Usei cut porque nem todos os md5 são armazenados da mesma maneira. Exemplo

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *