Que função de hash o OpenSSL usa para gerar uma chave para o AES-256? Não encontro em nenhum lugar na documentação deles.
$ touch file
$ openssl aes-256-cbc -nosalt -P -in file
enter aes-256-cbc encryption password: (I type "a" and hit enter)
Verifying - enter aes-256-cbc encryption password: (I type "a" and hit enter)
key=0CC175B9C0F1B6A831C399E269772661CEC520EA51EA0A47E87295FA3245A605
iv =4FA92C5873672E20FB163A0BCB2BB4A4
Qual algoritmo de hash gera o hash sem sal key=
na segunda última linha, para a entrada "a"?
encryption
openssl
hashing
aes
mk12
fonte
fonte
md5
vez desha1
, eu obtenho os mesmos resultados que eu publiquei originalmente. A questão é: como obtém 256 bits do MD5 (um algoritmo de hash de 128 bits)?É uma concatenação de dois hashes MD5.
É derivado assim:
Você pode verificar isso fazendo:
Observe como os MD5 de 'key.128.tmp' e 'key.256.tmp' concatenados juntos formam a mesma chave que a saída no comando inicial.
fonte
O OpenSSL usa AES com SHA1.
Se você deseja examinar uma fonte melhor escrita que o OpenSSL, consulte a
classe C ++ do artigo que faz interface com as cifras do OpenSSL .
O artigo inclui código fonte muito simples que:
fonte
Não sei a resposta, mas você provavelmente poderia encontrá-la facilmente no código-fonte do OpenSSL .
fonte
main
função (onde reside a funcionalidade de solicitação de senha) tem aproximadamente 500 linhas e está repleta degoto
s.