繁体   English   中英

python gnupg不加密文件

[英]python gnupg not encrypting file

我正在尝试使用GPG密钥加密文件,但输出始终为空:

>>> import gnupg
>>> home_dir = '~/.gnupg'
>>> pgp = gnupg.GPG(gnupghome=home_dir)
>>> key = open('ff.asc', 'rb')
>>> fp = open('test.txt', 'rb')
>>> res = pgp.import_keys(key.read())
>>> res.results
[{'fingerprint': 'C3...', 'text': 'Not actually changed\n', 'ok': '0'}]
>>> enc = pgp.encrypt_file(fp, 'C3...')
>>> enc.data
b''

我在这里想念什么?

另外,是否可以将公共GPG密钥从字符串直接传递给加密功能而不必导入它?

问题可能是导入的密钥不受信任。 gnupg文档中

注意:

提供给加密的任何公共密钥都应该是可信的,否则加密将失败,但不会发出任何警告。 这是因为gpg只是将消息打印到控制台,但没有提供Python包装程序可以使用的特定错误指示。

最简单的解决方案是使用加密函数的always_trust关键字参数:

always_trust (默认为False )-跳过密钥验证,并假定始终完全信任使用过的密钥。

因此,您的加密声明应为

enc = pgp.encrypt_file(fp, 'C3...', always_trust=True)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM