Para verificar o sha1 de um arquivo que eu usaria, openssl sha1 <file>
não sei ao certo o que usar para verificar o hash sha256 do arquivo, o que você recomendaria?
macos
command-line
encryption
erikvold
fonte
fonte
O OS X é enviado com um comando shasum .
Você pode usar:
Mais detalhes:
fonte
which shashum
não produz nada/usr/bin
com coisas opcionais. Vou ter que verificar se esse é o caso hoje mais tarde. Atualizará a resposta se realmente vier da instalação do XCL.shasum
retorna um hash diferente deopenssl sha -sha256 <file>
(com o último sendo o hash correto). Alguma idéia do porquê?shasum
é um script perl, usadoDigest::SHA
para calcular o valor do hash. Para o mesmo arquivo, obtenho exatamente o mesmo SHA usando umshasum
ouopenssl
para umSHA-256
cálculo de hash. Veja: gist.github.com/ianchesal/82a064b8971eb5e717ce84f3ded6dbfdPara esclarecer a resposta útil de @ John - que permite comparar um determinado hash com seu arquivo em um comando:
Digite
shasum -a 256 -c <<<
,seguido por um espaço opcional,
seguido por um único tick (
'
),seguido pelo hash para comparar,
seguido por um espaço,
seguido por um caractere de modo, com base em como o hash inicial foi gerado:
nada , se o hash foi criado com
-t
ou sem opção (modo de texto, que é o padrão)asterisco (
*
), se o hash foi criado com-b
(modo binário)ponto de interrogação (
?
), se o hash foi criado com-p
(modo portátil)circunflexo (
^
), se o hash foi criado com-0
(modo de bits)seguido pelo caminho para o arquivo,
seguido por um único tick de fechamento (
'
).Como no detalhamento a seguir, delinear parênteses em torno das partes do hash e do caminho do arquivo e colchetes ao redor da parte opcional "caractere de modo". ( Não inclua parênteses ou parênteses na vida real - eles estão aqui apenas para facilitar a visualização das peças! )
Dividido :
O comando shasum real é
shasum -a 256 -c
-a 256
dizshasum
para usar sha256 .-c
dizshasum
para "verificar" a entrada fornecida.O
<<<
é um conjunto de caracteres especiais Unix / Linux, chamado de operador de "redirecionamento". É para alimentar algo em um comando anterior. Ao usá-lo, estamos dizendo que forneceremos uma sequência de informações para oshasum
comando usar como entrada.A cadeia de informações de entrada deve ter marcações simples de abertura e fechamento, como
'some string here'
, ou nesse caso, o hash, o caractere de modo e o caminho do arquivo a serem verificados.A parte de hash dentro da string não precisa de nada de especial - mas deve ser seguida por um espaço.
A parte do caractere de modo pode ser nada, um asterisco (
*
), um ponto de interrogação (?
) ou um sinal de intercalação (^
). Isso informashasum
o modo com o qual o hash foi gerado. (Nota: nenhum caractere, representando o modo de texto, éshasum
o padrão.)O filepath parte, é o caminho real para o arquivo a ser verificado.
Então, aqui está um exemplo da vida real, verificando um arquivo de download do MAMP específico em relação ao suposto valor SHA-256 . O
*
caractere de modo foi necessário para que essa verificação funcionasse:Nota: o resultado deste comando (para o meu arquivo de exemplo) é -
ESTÁ BEM:
ou
FALHOU:
fonte
shasum -c <<< '7cb77378a0749f2a9b7e09ea62ffb13febf3759f *sample.txt'
retorna a mensagem*sample.txt: FAILED open or read
. Sem o asteriscosample.txt: OK
,. Ainda não consegui encontrar a base do uso do asterisco em outro lugar. Você poderia esclarecer?--binary
opção)? Na página do manual: "Ao verificar, a entrada deve ser uma saída anterior deste programa. O modo padrão é imprimir uma linha com soma de verificação, um caractere indicando o tipo (*
para binário,` `para texto,U
para UNIVERSAL,^
para BITS,?
para portáteis) e nome para cada ARQUIVO ". Portanto, os caracteres entre a soma de verificação e o nome do arquivo dependem do modo definido quando a soma de verificação foi criada?Eu usaria este comando.
Exemplo:
fonte