Portanto, não é a prática mais segura passar uma senha por meio de um argumento de linha de comando. Dito isto, a documentação para o openssl me confundiu sobre como passar um argumento de senha para o comando openssl.
Aqui está o que estou tentando fazer
openssl aes-256-cbc -in some_file.enc -out some_file.unenc -d
Isso solicita a chave de senha para descriptografia. Pesquisei os documentos openssl e as interwebs para tentar encontrar a resposta se eu simplesmente quisesse dar a senha ao comando sem tentar repetir a senha no arquivo. Tentei adicionar -pass:somepassword
e -pass somepassword
com e sem aspas sem sucesso.
Finalmente descobri a resposta e vi em outros fóruns pessoas com perguntas semelhantes, então pensei em postar minha pergunta e responder aqui para a comunidade.
nota: estou usando o openssl versão 0.9.8y
fonte
openssl
comandos (não apenasenc
) está na página de manual do openssl (1) também na web, em 'OPÇÕES'. Mas não acredito na sua última parte sobre -passin / out; outrosopenssl
comandos, comorsa dsa ec pkey pkcs8 pkcs12 req ca
os usam, mas em todas as versões que eu vi, incluindo a 1.0.1e criada diretamente a partir da fonteenc
usa-pass
ou-k -kfile
como documentado (na página deenc
manual).openssl dgst
comando? Como você insere a senha para isso na linha de comando?-passin
é usado para fornecer uma senha para o certificado de entrada, e-passout
é para o novo certificado geradoEu usei
-passin
e-passout
para definir senhas para os dois arquivos no exemplo:onde
123
e321
são a senhafonte
Neste momento, o Ubuntu 14.04 LTS vem com o openssl 1.0.1f-1ubuntu2.16
Nesta versão, o parâmetro a ser usado é
-k
Exemplo:
fonte
man enc
), não é uma opção geral. Se você observar,man openssl
verá sob o título 'Opções de frase secreta', quais são as opções gerais;pass:password
,env:var
,file:pathname
,fd:number
Oustdin
, como mencionado em uma resposta mais cedo.