Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Gnupg未输出加密文件_Python - Fatal编程技术网

Python Gnupg未输出加密文件

Python Gnupg未输出加密文件,python,Python,我正在尝试导入公钥、读取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 = gp

我正在尝试导入公钥、读取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") 

第二个参数是收件人列表。您正在向其传递密钥数据。如果检查调用
gpg.encrypt(…)
的结果,您将看到:

>>> encrypted_ascii_data.status
'invalid recipient'
您需要指定明确的收件人(通过指纹、电子邮件地址等),或从导入的密钥中提取收件人,如下所示:

>>> 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'
看起来您需要为该密钥设置信任。在尝试使用密钥之前:

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'

第二个参数是收件人列表。您正在向其传递密钥数据。如果检查调用
gpg.encrypt(…)
的结果,您将看到:

>>> encrypted_ascii_data.status
'invalid recipient'
您需要指定明确的收件人(通过指纹、电子邮件地址等),或从导入的密钥中提取收件人,如下所示:

>>> 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'
看起来您需要为该密钥设置信任。在尝试使用密钥之前:

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'