Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python rsa模块故障_Python_Python 3.x_Rsa - Fatal编程技术网

Python rsa模块故障

Python rsa模块故障,python,python-3.x,rsa,Python,Python 3.x,Rsa,我需要加密一些数据,所以我决定使用rsa模块。我需要生成公钥和私钥。我想把我的公钥发送给一些客户。我该怎么做 import rsa (public_key, private_key) = rsa.newkeys(512) 我已经生成了它,但是现在是一个包含两个字段的结构e和n。如何将其转换为字节?从字节返回到这样的结构?您可以使用PyCrypto模块 from Crypto.PublicKey import RSA key = RSA.generate(512) private_key = k

我需要加密一些数据,所以我决定使用rsa模块。我需要生成公钥和私钥。我想把我的公钥发送给一些客户。我该怎么做

import rsa
(public_key, private_key) = rsa.newkeys(512)

我已经生成了它,但是现在是一个包含两个字段的结构
e
n
。如何将其转换为字节?从字节返回到这样的结构?

您可以使用PyCrypto模块

from Crypto.PublicKey import RSA
key = RSA.generate(512)
private_key = key.exportKey(passphrase='', pkcs=8)
public_key = key.publickey().exportKey()
在您的情况下,尝试使用
save_pkcs1
方法保存为PEM格式

UPD:

使用rsa加密的代码示例:

message = b'message'
# Alternative way - message = 'message'.encode('utf-8')
encrypted = rsa.encrypt(message, public_key)
对于解密:

rsa.decrypt(encrypted, private_key).decode('utf-8')

您可以使用pickle?是的,如果其他客户机是用python编写的,那么您可以使用pickle。这个问题的答案完全取决于其他客户端支持的格式。@JamesReinstateMonicaPolk是的,客户端是用Python编写的。但是什么是pickle?请在python文档中查找它。如果这是pyrsa,它还具有公钥和私钥的加载和保存方法,这可能更合适。@JamesReinstateMonicaPolk我已经看过了,但我使用队列消息,所以无法发送文件,只有Strings我认为他没有使用PyCrypto。我尝试使用PyCrypto,但在这种情况下,我在加密和解密消息时出错。因为我使用的是python 3So,所以如果我们知道公钥,您能告诉我们如何加密消息吗?