Python 如何将ElGamal密钥导出到文本文件?

Python 如何将ElGamal密钥导出到文本文件?,python,encryption,rsa,pycrypto,elgamal,Python,Encryption,Rsa,Pycrypto,Elgamal,我一直致力于加密字符串并将其显示为QR码(在对字符串进行base64编码之后) 我想使用PyCrypto中的ElGamal私有公钥加密模块进行加密,但问题是它没有将密钥保存到文本文件的导出功能。我错过什么了吗?如果没有,有没有一种聪明的方法可以将其导出,或者其他我应该研究的方法 注:使用ElGamal而不是RSA的原因是我可以使密钥小于1024字节,这使得二维码更小、更简单。您可以直接使用access ElGamal密钥组件,因为它们是密钥对象的成员 在Python 2.x中,可以执行以下操作以

我一直致力于加密字符串并将其显示为QR码(在对字符串进行base64编码之后)

我想使用PyCrypto中的ElGamal私有公钥加密模块进行加密,但问题是它没有将密钥保存到文本文件的导出功能。我错过什么了吗?如果没有,有没有一种聪明的方法可以将其导出,或者其他我应该研究的方法


注:使用ElGamal而不是RSA的原因是我可以使密钥小于1024字节,这使得二维码更小、更简单。

您可以直接使用access ElGamal密钥组件,因为它们是密钥对象的成员

在Python 2.x中,可以执行以下操作以打印文本文件中的组件:

from Crypto.PublicKey import ElGamal
from Crypto.Random import get_random_bytes

key = ElGamal.generate(2048, get_random_bytes)
comps = ('p', 'g', 'y', 'x')
out = "\n".join(["{} = {}".format(comp, getattr(key, comp)) for comp in comps])
print out

您可以直接使用access访问ElGamal键组件,因为它们是键对象的成员

在Python 2.x中,可以执行以下操作以打印文本文件中的组件:

from Crypto.PublicKey import ElGamal
from Crypto.Random import get_random_bytes

key = ElGamal.generate(2048, get_random_bytes)
comps = ('p', 'g', 'y', 'x')
out = "\n".join(["{} = {}".format(comp, getattr(key, comp)) for comp in comps])
print out

El gamal密钥大小不小于RSA。你应该研究ECC(椭圆曲线密码术)以获得更短的非对称密钥大小。这只是谷歌搜索的一个快速帮助:该算法的名称实际上是“ElGamal”。请注意“a”而不是“e”。768位密钥已经被破坏,暴力攻击速度一直在加快。1024位是目前任何安全性的最低要求。El-gamal密钥大小不小于RSA。你应该研究ECC(椭圆曲线密码术)以获得更短的非对称密钥大小。这只是谷歌搜索的一个快速帮助:该算法的名称实际上是“ElGamal”。请注意“a”而不是“e”。768位密钥已经被破坏,暴力攻击速度一直在加快。1024位是当今任何安全性的最低要求。