Como verificar uma soma de verificação usando uma linha de comando?

1

Suponha que eu digite e execute o seguinte comando:

sha256sum ubuntu-18.04.1-desktop-amd64.iso

Após um atraso, isso gera o seguinte:

5748706937539418ee5707bd538c4f5eabae485d17aa49fb13ce2c9b70532433  ubuntu-18.04.1-desktop-amd64.iso

Então, percebo que deveria ter digitado o seguinte comando para avaliar mais rapidamente se o hash SHA-256 corresponde:

sha256sum ubuntu-18.04.1-desktop-amd64.iso | grep 5748706937539418ee5707bd538c4f5eabae485d17aa49fb13ce2c9b70532433

Existe uma maneira de agir na primeira saída sem usar o comando sha256sum para verificar a soma de verificação uma segunda vez (ou seja, para evitar o atraso que seria causado por fazer isso)? Especificamente:

  1. Gostaria de saber como fazer isso usando um comando que não exige copiar e colar a soma de verificação da primeira saída (se for possível).
  2. Gostaria de saber a maneira mais simples de fazer isso usando um comando que faz exigir cópia e colagem da soma de verificação da primeira saída. (Simplesmente tentar usar grep em uma soma de verificação colada com aspas duplas (ou seja, como uma string) não funciona.)
por Patrick Dark 22.08.2018 / 02:58

2 respostas

2

Q1: I'd like to know how to do this using a command that does not require copy and pasting of the first output's checksum (if it's possible).

Bash não fornece nenhum mecanismo para recuperar qualquer saída do comando executado anteriormente. Você tem que capturá-lo explicitamente se você pretende agir em qualquer comando subsequente.

Q2: I'd like to know the simplest way to do this using a command that does require copy and pasting of the first output's checksum. (Simply attempting to use grep on a double‐quoted pasted checksum (i.e., as a string) doesn't work.)

Portanto, a sua única opção aqui é copiar / colar a saída do comando anterior. Com relação a porque isso não estava funcionando para você quando você tentou. Isso provavelmente falhou porque quando você usa echo <sha1sum> você introduziu um caractere adicional, uma nova linha ( \n ) que alterou a sequência de soma de verificação.

Ao fazer o eco de strings para qualquer uma das funções hash como md5 ou sha256sum , geralmente é melhor fazer um echo -n <..> , que diz a echo para omitir a anexação de uma nova linha no final da string.

Você pode ver como isso pode influenciar todas as chamadas para uma função hash da seguinte forma:

$ echo "blah" | sha256sum
41af286dc0b172ed2f1ca934fd2278de4a1192302ffa07087cea2682e7d372e3  -

$ echo -n "blah" | sha256sum
8b7df143d91c716ecfa5fc1730022f6b421b05cedee8fd52b1fc65a96030ad52  -

O verdadeiro hash da string 'blah' é a segunda chamada.

    
por 22.08.2018 / 05:05
2

Parece que você está verificando as partidas. Você considerou usar a opção -c ( --check ) para sha256sum ?

    
por 22.08.2018 / 12:05