
以下のコマンドを使用して文字列をファイルに暗号化していますが、常に「gpg --encrypt には入力が必要です」というエラー メッセージが表示されて失敗します。
gpg.exe --batch --passphrase-fd 0 --armor --sign --recipient [email protected] --homedir "c:\gnupg" --encrypt 1 > "test.gpg"
何か案は?
答え1
GnuPG は常にファイルまたは STDIN からの入力を期待します。文字列を STDIN に渡すには、ECHO
Windows システムでは を、echo
Unix システムでは を使用し、パイプで次のように入力しますgpg
。
ECHO 1 | gpg [other options] --encrypt
echo 1 | gpg [other options] --encrypt
パスフレーズはファイル記述子0(STDIN)から取得することを既に想定しているので、
- 別の場所から署名するパスフレーズとデータのいずれかを提供する
- 改行文字で区切られた両方の文字列をパイプで囲みます。これはUnixシステム()の
sh
/を使用すると簡単ですが、bash
echo -e "passphrase\ndata" | gpg --sign --encrypt
Windowsではかなりハックっぽい解決策が必要(私は Windows コマンド プロンプトにあまり詳しくありませんが、おそらく単一のコマンドでいずれかのソリューションを選択する必要があるでしょうECHO
)。