【问题标题】:How to write encrypted data in a file using pycrypto? [duplicate]如何使用 pycrypto 在文件中写入加密数据? [复制]
【发布时间】:2016-04-18 21:28:49
【问题描述】:

我一直在使用 RSA 公钥/私钥对来加密数据:

random_generator = Random.new().read
key = RSA.generate(1024, random_generator)
publickey = key.publickey()

并将其写入文件。我得到的问题是当我以字节为单位读取任何文件时:

f = open('test','rb')
d = f.read()
enc_data = publickey.encrypt(d,32)

我将加密数据作为元组获取

>>> type(enc_data)
>>> <class 'tuple'>

问题是当我尝试在任何新创建的文件中写入加密文本时,我无法在任何模式下这样做

o = open('out','wb') #same with 'w' mode
o.write(enc_data)

显示错误:

Traceback (most recent call last):
File "<pyshell#103>", line 1, in <module>
o.write(enc_data)
TypeError: must be str, not tuple

如何保存我的加密数据?

【问题讨论】:

  • 非常感谢 :) 我得到了答案!
  • publickey.emcrytp(d,32),真的吗? :)

标签: python pycrypto


【解决方案1】:

根据these docsencrypt 函数返回一个元组,其中第二个值始终为None。我假设这是为了支持向后兼容性。试试:

enc_data, other =  publickey.encrypt(d,32)

然后写enc_data(这叫“密文”)

将来,最好明确说明您正在使用什么库。还有emcrytp...

【讨论】:

  • 要求再增加 1 个价值,但我从 Garrett Hyde 的重复建议中得到了答案! :) 非常感谢 :)
猜你喜欢
  • 1970-01-01
  • 2014-01-18
  • 2012-04-16
  • 1970-01-01
  • 2014-06-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-11
相关资源
最近更新 更多