如何在 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,请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命令的解决方案)。

相关内容