首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PyCrypto RSA和Pickle

PyCrypto RSA和Pickle
EN

Stack Overflow用户
提问于 2016-08-24 03:52:33
回答 1查看 1.1K关注 0票数 0

我正在使用pyCrpyto的RSA类:

代码语言:javascript
复制
from Crypto.Cipher import PKCS1_v1_5
from Crypto.PublicKey import RSA

message = 'To be encrypted'
key = RSA.generate(2048)
cipher = PKCS1_v1_5.new(key)
ciphertext = cipher.encrypt(message)

代码运行得很好,我可以解密密文了。但是,我需要能够序列化这些密码。我没有遇到任何问题pickle-ing其他pyCrypto密码,如AES,但当我尝试pickle一个RSA密码时,我遇到了以下错误:

代码语言:javascript
复制
from Crypto.Cipher import PKCS1_v1_5
from Crypto.PublicKey import RSA
import pickle

message = 'To be encrypted'
key = RSA.generate(2048)
cipher = PKCS1_v1_5.new(key)

pickle.dump(cipher, open("cipher.temp", "wb"))
cipher = pickle.load(open("cipher.temp", "rb"))
ciphertext = cipher.encrypt(message)

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Crypto/Cipher/PKCS1_v1_5.py", line 119, in encrypt
randFunc = self._key._randfunc
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Crypto/PublicKey/RSA.py", line 126, in __getattr__
  raise AttributeError("%s object has no %r attribute" % (self.__class__.__name__, attrname,))
  AttributeError: _RSAobj object has no '_randfunc' attribute

我能做些什么来解决这个问题--另一个序列化框架,RSA对象的不同构造方法,等等,或者这只是一个非pickle的-able对象?

EN

回答 1

Stack Overflow用户

发布于 2017-05-01 19:42:44

酸洗对于公钥组件工作得很好,但是当涉及到整个密钥时,_randfunc不能幸免于酸洗。在处理项目时,我也遇到过同样的错误。你可以在这里找到更多信息:https://github.com/google/oauth2client/issues/638

使用PyCrypto的importKey和exportKey函数,其文档可以在这里找到:https://www.dlitz.net/software/pycrypto/api/2.6/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39109607

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档