在Python中使用gnupg解密PGP

2024-04-29 04:52:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用此模块解密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')

我正在使用模块的最新版本,以及Python2.6.6。我想我可以使用安全环文件来解密它,因为文件显然需要它。它在我运行脚本时输出:

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

安全密钥是用来解密文件的,这不是真的吗?谢谢你的帮助!


Tags: 模块文件keytxthttppackagesstatusgpg
1条回答
网友
1楼 · 发布于 2024-04-29 04:52:19

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

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

相关问题 更多 >