Como criptografar o conteúdo do arquivo a partir do prompt em lote no GnuPG?

Como criptografar o conteúdo do arquivo a partir do prompt em lote no GnuPG?

Estou usando o comando abaixo para criptografar uma string em um arquivo, mas ele sempre falha com a mensagem de erro "gpg --encrypt precisa de entrada".

gpg.exe --batch --passphrase-fd 0 --armor --sign --recipient [email protected] --homedir "c:\gnupg" --encrypt 1 > "test.gpg"

Alguma ideia?

Responder1

O GnuPG sempre espera a entrada de um arquivo ou de STDIN. Para passar uma string para STDIN, use ECHOem sistemas Windows ou echoem sistemas Unix e canalize para gpg:

ECHO 1 | gpg [other options] --encrypt
echo 1 | gpg [other options] --encrypt

Como você já espera a senha do descritor de arquivo 0 (que é STDIN), você terá que

  • forneça qualquer senha e dados para serem assinados de outro local
  • pipe em ambas as strings separadas por um caractere de nova linha, o que é fácil com sh/ bashem sistemas unix ( echo -e "passphrase\ndata" | gpg --sign --encrypt), masrequer uma solução bastante hacky no Windows(Não estou muito familiarizado com o prompt de comando do Windows, mas provavelmente você terá que escolher uma das soluções com ECHOcomando único).

informação relacionada