openssl gerando SHA-256

3

Estou tentando usar o openssl para criar um hash criptográfico de um arquivo usando o HMAC-SHA-256. Estou confuso sobre o motivo de eu estar vendo um erro 'não há arquivo ou diretório' na saída.

A chave que estou usando está em um arquivo chamado mykey.txt.

Este é o meu comando:

openssl dgst -sha256 -hmac -hex hexkey:$(cat mykey.txt) -out hmac.txt /bin/ps

E a saída

    
por Jimmy Collins 20.05.2018 / 17:33

2 respostas

1

openssl dgst-sha256 -hmac -hex -macopt hexkey: $ (cat mykey.txt) -out hmac.txt / bin / ps

    
por 20.05.2018 / 18:32
6

-hmac usa a chave como argumento ( consulte o manual ), portanto, seu comando pede um HMAC usando a chave -hex . hexkey:... é considerado um nome de arquivo, já que ele não inicia com um traço, e openssl não aceita opções após nomes de arquivos, portanto, o seguinte -out também é um nome de arquivo.

Para obter o HMAC com uma chave fornecida como string hexadecimal, você precisará usar -mac hmac e -macopt hexkey:<key> . Observe que usar -hmac <key> e -mac hmac juntos não funciona e -macopt requer -mac hmac .

Teste:

openssl dgst -sha256 -hmac abc <<< "message"
openssl dgst -sha256 -hmac abc -macopt hexkey:12345678 <<< "message"
openssl dgst -sha256 -mac hmac -macopt hexkey:616263 <<< "message"
perl -MDigest::HMAC=hmac_hex -MDigest::SHA=sha256 \
    -le 'print(hmac_hex("message\n", "abc", \&sha256))'

Todos fornecem o hash 99592e56fcde028fb41882668b0cbfa0119116f9cf111d285f5cedb000cfc45a que concorda com uma calculadora HMAC on-line aleatória para a mensagem message\n , chave abc ou 616263 em hexadecimal. (Observe a nova linha no final de message aqui.)

Então, parece que você provavelmente desejaria

openssl dgst -sha256 -mac hmac -macopt hexkey:$(cat mykey.txt) -out hmac.txt /bin/ps

Já que estamos falando de criptografia, o que é difícil; e OpenSSL, que nem sempre tem as interfaces mais fáceis de usar, eu sugiro também verificar tudo sozinho, pelo menos duas vezes, em vez de aceitar minha palavra.

    
por 20.05.2018 / 19:22

Tags