0

所以这个问题的更大背景是,无论出于何种原因,使用 Bouncy Castle 解密这个文件是不可能的,所以我们试图用普通的 gpg 实用程序来做一个自动命令行......我最初认为这比试图弄清楚为什么 Bouncy Castle 不相信这是一个真正的 PGP 加密文件要快,但我可能错了。

这是管道:

echo password | gpg --batch --yes --passphrase-fd 0 "filename"

这在 Powershell 中完美运行。实际上,这方面的几个变体在 Powershell 中完美地工作,但这不是重点......

关键是我试图在 cmd.exe 中运行它,但它在那里不起作用。相反,我收到一条错误消息,指出没有提供密码,因此没有可用的密钥,因此无法解密文件。

鉴于我为此阅读的说明专门针对cmd.exe(不是 Powershell),我有点困惑。知道这里发生了什么吗?

4

1 回答 1

1

显然,问题在于通过管道传递的密码包含一个空格——这个空格出现在我们假设的“d”和管道符号本身之间。:)

因此,为了将来参考,这是有效的:

echo password|gpg --batch --yes --passphrase-fd 0 "filename"

顺便说一句,这正是指南所说的,但我从未理解过,因为我在 Powershell 中进行了初步测试,并没有意识到 cmd 的 echo 命令有多么挑剔。

于 2013-06-18T16:42:06.227 回答