如何使用收件人的电子邮件地址(而不是指纹)加密Python (GnuPG / GPG / OpenPGP)?
这个例子展示了(我的Ubuntu20.04/这样的东西失败了,但这是一个旧的例子;摘录:
encrypted_data = gpg.encrypt(unencrypted_string, 'testgpguser@mydomain.com')
更多的电流(也许?)参考资料(如这和这)没有提到收件人的电子邮件地址,似乎只需要数字指纹(大概是)公钥标识。在今天的环境中是否有可能(仅通过相关的电子邮件地址/标识来识别密钥)?可能需要一个密钥服务器
我测试过的python-gnupg系统版本。
发布于 2022-05-23 15:41:02
查看问题中的版本号,您似乎正在使用很糟糕的协议重写,该重写自2018年以来就没有更新过。
如果您只需安装python-gnupg
$ pip install python-gnupg
您得到了版本0.4.9
,它是就在几天前发布的。
Collecting python-gnupg
Downloading http://.../python_gnupg-0.4.9-py2.py3-none-any.whl (18 kB)
Installing collected packages: python-gnupg
Successfully installed python-gnupg-0.4.9
使用这个版本的gnupg
模块,您的代码工作时没有问题:
>>> import gnupg
>>> gpg = gnupg.G
gnupg.GPG( gnupg.GenKey(
>>> gpg = gnupg.GPG()
>>> res = gpg.encrypt("this is a test", "bob@example.com")
>>> res.data
b'-----BEGIN PGP MESSAGE-----\n...\n-----END PGP MESSAGE-----\n'
>>>
当然,使用指纹更好,因为你可能有多个钥匙在你的钥匙链与相同的电子邮件地址,你不能确定哪一个你会得到。使用指纹可以确保你得到那个特定的钥匙。
https://stackoverflow.com/questions/72355601
复制相似问题