GnuPG のバッチプロンプトからファイルにコンテンツを暗号化する方法は?

GnuPG のバッチプロンプトからファイルにコンテンツを暗号化する方法は?

以下のコマンドを使用して文字列をファイルに暗号化していますが、常に「gpg --encrypt には入力が必要です」というエラー メッセージが表示されて失敗します。

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

何か案は?

答え1

GnuPG は常にファイルまたは STDIN からの入力を期待します。文字列を STDIN に渡すには、ECHOWindows システムでは を、echoUnix システムでは を使用し、パイプで次のように入力しますgpg

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

パスフレーズはファイル記述子0(STDIN)から取得することを既に想定しているので、

  • 別の場所から署名するパスフレーズとデータのいずれかを提供する
  • 改行文字で区切られた両方の文字列をパイプで囲みます。これはUnixシステム()のsh/を使用すると簡単ですが、bashecho -e "passphrase\ndata" | gpg --sign --encryptWindowsではかなりハックっぽい解決策が必要(私は Windows コマンド プロンプトにあまり詳しくありませんが、おそらく単一のコマンドでいずれかのソリューションを選択する必要があるでしょうECHO)。

関連情報