gpt4 book ai didi

python - 使用 python-gnupg 解密用 gpg 加密的文件

转载 作者:行者123 更新时间:2023-12-04 12:03:29 26 4
gpt4 key购买 nike

我有一个使用 gpg 创建对称加密文件的过程:

gpg --batch --passphrase=mypassphrase -c configure.txt

我可以使用 gpg 解密加密文件只要我有密码,任何用户都可以。这正如预期的那样。

然后我运行了一个 python 服务,它定期下载这个文件,解密它,并使用定义的配置。好吧,它应该解密它,但事实并非如此。这是一个代码 list :
import urllib.request
import gnupg

gpg = gnupg.GPG()
key = 'mypassphrase'
response = urllib.request.urlopen('http://www.example.org/configure.txt.gpg')
encrypted_file = response.read()
file = gpg.decrypt(encrypted_file, passphrase=key)

print(str(file))
print是空白。如果我检查 file对象,我看到这些属性:
{
'_gpg': <gnupg.gnupg.GPG object at 0x7f3d84675a90>,
'valid': False,
'status': 'decrypt 4294967295',
'fingerprint': None,
'pubkey_fingerprint': None,
'key_id': None,
'signature_id': None,
'creation_date': None,
'timestamp': None,
'sig_timestamp': None,
'username': None,
'expire_timestamp': None,
'trust_level': None,
'trust_text': None,
'subpackets': {},
'notations': {},
'_last_notation_name': None,
'data': b'',
'ok': False,
'data_format': None,
'data_timestamp': None,
'data_filename': None,
'stderr': 'gpg: no valid OpenPGP data found.\n[GNUPG:] NODATA 1\n[GNUPG:] NODATA 2\n[GNUPG:] FAILURE decrypt 4294967295\ngpg: decrypt_message failed: Unknown system error\n'
}

我也试过直接打开文件并跳过 urlopen如果是传输问题。然而,由此产生的 encrypted_file显示相同的字节,最终显示相同的错误和空结果。

我一直在研究这个,直到我脸色发青。即使是现在,我也可能从各种帮助站点打开了十几个选项卡,其中大部分来自 SO。他们所有人都在做我正在做的事情,但不完全是,最终也不是我的解决方案。在 stderr 中搜索文本主要导致很多人在下载和安装 key 时出错。

This SO question似乎最接近,但他们没有使用对称加密,因此他们遇到了用户证书和 key 问题。就像我说的,只要我有密码,我就可以与任何用户解密文件,所以我认为这不是我的问题。

我什至离成为文件加密专家还差得很远,而且我确信我做出了某种错误的假设。

干杯!

最佳答案

您正在使用以下说明

gpg = gnupg.GPG()
而是在 GPG() 中提供 gnupghome( key 的路径)
gpg = gnupg.GPG(gnupghome='/home/linuxman/.gnupg')
哪里 '/home/linuxman/.gnupg'是列出 key 的路径。
使用 gpg --list-keys (或) gpg --list-secret-keys 查找 key 和列出 key 的路径
通常这个路径将是主目录

关于python - 使用 python-gnupg 解密用 gpg 加密的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55246325/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com