如何在 GnuPG 中透過批次提示將內容加密到檔案?

如何在 GnuPG 中透過批次提示將內容加密到檔案?

我正在使用下面的命令將字串加密到文件中,但它總是失敗並顯示錯誤訊息“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 系統或echounix 系統上使用並透過管道輸入gpg

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

由於您已經期望來自檔案描述符 0(即 STDIN)的密碼,因此您必須

  • 提供要從另一個位置簽署的任何密碼和數據
  • 在兩個字串中使用管道以換行符號分隔,這在 unix 系統上使用sh/很容易 ( ),但是bashecho -e "passphrase\ndata" | gpg --sign --encrypt在 Windows 上需要一個相當 hacky 的解決方案(我不太熟悉 Windows 命令提示符,但您可能必須使用單一ECHO命令選擇其中一種解決方案)。

相關內容