如何使用收件人属性 gpg 加密文件?

问题描述

我尝试使用 Python 中的收件人属性文件进行 GPG 加密,但出现错误

import os
import os.path
import time

gpg = gnupg.GPG(homedir='/home/ec2-user/.gnupg')

path = '/home/ec2-user/pgp'
ptfile = '/demo'

with open('/home/ec2-user/pgp/demo.txt','rb')as f:
        status = gpg.encrypt(f,recipients='email@domain.com',passphrase='secret')

print(status.ok)
print(status.stderr)

我收到以下错误

[ec2-user@domain pgp]$ python3 pgp_encrypt.py
Traceback (most recent call last):
  File "pgp_encrypt.py",line 12,in <module>
    status = gpg.encrypt(f,passphrase='secret')
  File "/home/ec2-user/.local/lib/python3.8/site-packages/gnupg/gnupg.py",line 1064,in encrypt
    result = self._encrypt(stream,recipients,**kwargs)
TypeError: _encrypt() got multiple values for argument 'recipients'

如果我使用 encrypt_file() 函数

import os
import os.path
import time

gpg = gnupg.GPG(homedir='/home/ec2-user/.gnupg')

path = '/home/ec2-user/pgp'
ptfile = '/demo'

with open('/home/ec2-user/pgp/demo.txt','rb')as f:
        status = gpg.encrypt_file(f,passphrase='secret')

print(status.ok)
print(status.stderr)

我收到 AttributeError

[ec2-user@domain pgp]$ python3 pgp_encrypt.py
Traceback (most recent call last):
  File "pgp_encrypt.py",in <module>
     status = gpg.encrypt_file(f,passphrase='secret')
AttributeError: 'GPG' object has no attribute 'encrypt_file'

以下代码我有用,但我想使用收件人公钥加密文件

status = gpg.encrypt(f,symmetric=True,passphrase='Xcelenergy1!',encrypt=False)

如何修复我的代码

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)