use*_*780 4 python encryption gnupg
我正在尝试使用python和gnupg进行对称加密。
此代码段适用于我的Windows Vista计算机,其python gnupg模块的版本为0.3.2:
import gnupg
gpg = gnupg.GPG()
data = 'the quick brown fow jumps over the laxy dog.'
passphrase='12345'
crypt = gpg.encrypt(data, recipients=None,
symmetric='AES256',
passphrase=passphrase,
armor=False)
Run Code Online (Sandbox Code Playgroud)
当我尝试在具有1.2.5版python gnupg模块的linux机器上运行它时,出现以下错误:
Traceback (most recent call last):
File "<stdin>", line 4, in <module>
File "/usr/local/lib/python2.7/dist-packages/gnupg/gnupg.py", line 961, in encrypt
result = self._encrypt(stream, recipients, **kwargs)
TypeError: _encrypt() got multiple values for keyword argument 'recipients'
Run Code Online (Sandbox Code Playgroud)
我已经进行了许多搜索,但找不到任何东西。
小智 5
这是一个古老的问题,但是我在Google搜索中遇到了这个问题,对提供的答案不满意。我在python-gnupg的GitHub问题中找到了真正的答案:
gpg.encrypt(data, symmetric='AES256', passphrase=passphrase, armor=False, encrypt=False)
因此,删除recipients=None并添加一个encrypt=False。然后,您的crypt.data将包含加密的数据。不直观,但可以。
(来源:https : //github.com/isislovecruft/python-gnupg/issues/110)
仔细检查文档,参数 isn't recipient,is 是recipients(注意复数)
文档(强调我的):
对称(默认为 False)如果指定,则使用对称加密。在这种情况下,请将收件人指定为“无”。如果指定 True,则使用默认密码算法 (CAST5)。从版本 0.3.5 开始,您还可以指定要使用的密码算法(例如“AES256”)。检查 gpg 命令行帮助以了解支持哪些对称密码算法。请注意,默认值 (CAST5) 可能不是最佳可用值。
| 归档时间: |
|
| 查看次数: |
4553 次 |
| 最近记录: |