在Python中使用gnupg解密PGP

时间:2012-08-03 15:48:10

标签: python pgp

我正在尝试使用此模块解密PGP文件: http://packages.python.org/python-gnupg/

这是我的代码段:

#!/usr/bin/python

import gnupg

gpg = gnupg.GPG(gnupghome='C:\\Users\\GSquire\\Desktop\\GnuPG',
                                gpgbinary='C:\\Users\\GSquire\\Desktop\\GnuPG\\pub\\gpg.exe',
                                keyring='C:\\Users\\GSquire\\Desktop\\GnuPG\\secring.skr')

with open('.\\tranx08022012.txt.pgp', 'rb') as f:
    status = gpg.decrypt_file(f, passphrase='passphrase', output='out.txt')

我使用的是最新版本的模块和Python 2.6.6。我以为我可以使用安全环文件来解密它,因为文件显然需要它。它在我运行脚本时输出:

ok: False
status:
stderr:
gpg: expected public key but found secret key - must stop

安全密钥解密文件是不是真的?谢谢你的帮助!

1 个答案:

答案 0 :(得分:0)

您收到的错误是因为您在keyring参数中传递了密钥密钥的文件名。该参数仅适用于公钥密钥。不幸的是,似乎没有替代参数来指定密钥密钥环文件。

默认情况下,GnuPG会在您指定的secring.gpg文件夹中的gnupghome中查找密钥,因此您可以重命名密钥文件并使其正常工作。