我正在使用下面的命令將字串加密到文件中,但它總是失敗並顯示錯誤訊息“gpg --加密需要輸入”。
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 上需要一個相當 hacky 的解決方案(我不太熟悉 Windows 命令提示符,但您可能必須使用單一ECHO
命令選擇其中一種解決方案)。