gpt4 book ai didi

python - Gnupg 不输出加密文件

转载 作者:行者123 更新时间:2023-12-05 04:58:58 35 4
gpt4 key购买 nike

我正在尝试导入公钥、读取 csv 文件、加密该文件并将加密文件存储在文件夹/目录中。程序运行但在我运行脚本后似乎没有生成、创建或输出任何内容。任何建议。

import gnupg
gpg = gnupg.GPG(gnupghome='./gnupghome')
key_data = open('./datafiles/public_key.txt').read()
import_result = gpg.import_keys(key_data)
encrypted_ascii_data = gpg.encrypt('./datafiles/myFile.csv', key_data, output="./datafiles/myFile.csv.gpg")

最佳答案

第二个参数是收件人列表。您正在将 key_data 传递给它。如果您检查调用 gpg.encrypt(...) 的结果,您将看到:

>>> encrypted_ascii_data.status
'invalid recipient'

您需要指定一个明确的收件人(通过指纹、电子邮件地址等),或者从您导入的 key 中提取一个收件人,如下所示:

>>> encrypted_ascii_data = gpg.encrypt('./datafiles/myFile.csv',
... import_result.fingerprints[0],
... output="./datafiles/myFile.csv.gpg")

但这仍然可能会失败:

>>> encrypted_ascii_data.stderr
'[GNUPG:] KEY_CONSIDERED ... 0\ngpg: 426D9382DFD6A7A9: There is no assurance this key belongs to the named user\n[GNUPG:] INV_RECP 10 ...\n[GNUPG:] FAILURE encrypt 53\ngpg: [stdin]: encryption failed: Unusable public key\n'

看来您需要为该 key 设置信任。在尝试使用 key 之前:

gpg.trust_keys(import_result.fingerprints, 'TRUST_ULTIMATE')

完成后:

>>> encrypted_ascii_data = gpg.encrypt('./datafiles/myFile.csv',
... import_result.fingerprints[0],
... output="./datafiles/myFile.csv.gpg")
>>> encrypted_ascii_data.status
'encryption ok'

关于python - Gnupg 不输出加密文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63714716/

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