【问题标题】:gpg: public key decryption failed: Bad passphrasegpg:公钥解密失败:密码错误
【发布时间】:2014-05-07 22:40:14
【问题描述】:

我正在尝试使用 GPG 解密文件,为此我使用“Starksoft.Cryptography.OpenPGP”。我收到以下错误

Starksoft.Cryptography.OpenPGP.GnuPGException: An error occurred while trying to execute command --list-secret-keys.

但是当我通过命令提示符“>gpg --list-secret-keys”执行命令时,它确实列出了密钥。我无法让“Starksoft.Cryptography.OpenPGP”正常工作。

接下来我尝试通过直接使用 cmd.exe 运行该进程来获得解决方案。但是,以下命令均不起作用:

>echo gpg --passphrase Mypasspharse -o "C:\successtest.txt" -d "C:\testfile.txt.gpg"

>echo Mypasspharse|gpg.exe --passphrase-fd 0 -o "C:\successtest.txt" --decrypt "C:\testfile.txt.gpg"

>echo Mypasspharse|gpg --keyring "pubring.gpg location" --secret-keyring "secring.gpg location" --batch --yes --passphrase-fd 0 -o "C:\successtest.txt" -d "C:\testfile.txt.gpg"


>echo Mypasspharse|gpg -o C:\successtest.txt --batch --passphrase-fd 0 --decrypt C:\testfile.txt.gpg


 >echo Mypasspharse|gpg2 --batch --passphrase-file "PrivateKey.asc location" --output C:\successtest.txt --decrypt C:\testfile.txt.gpg

Error Message : gpg: public key decryption failed: Bad passphrase
                gpg: decryption failed: No secret key

谁能告诉我如何解密文件?

【问题讨论】:

  • 嗨,Viji,您能检查一下我的更改是否对您有意义吗?我很难理解这个问题。
  • 是的。感谢编辑

标签: c# encryption cryptography gnupg


【解决方案1】:

我发现了 gpg 命令行的问题。第二个命令行运行良好。

echo Mypasspharse|gpg.exe --passphrase-fd 0 -o "C:\successtest.txt" --decrypt "C:\testfile.txt.gpg"

问题是:

 Mypassphare contained a character ">" which interpreted as std out redirect in windows command prompt. So, passphase wasn't passing to the next command properly.

由于这个命令正常工作,我没有检查其他语法。如果有错误,请随时检查其他命令并在此处更新。

我把问答总结在这里:http://techsharehub.blogspot.com/2014/09/gpg-public-key-decryption-failed-bad.html

【讨论】: