我正在使用以下命令将字符串加密到文件,但它总是失败并显示错误消息“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 上需要一个相当 hacky 的解决方案(我不太熟悉 Windows 命令提示符,但您可能必须选择其中一个带有单个ECHO
命令的解决方案)。