我有一个公钥和用户名的列表,我想通过套接字发送。我发现 how to send an array over a socket in python但使用酸洗也不起作用。无法腌制一个RSA密钥通过套接字发送
我的代码:
private_key = generateRSA()
public_key = private_key.public_key()
host = ''
port = 8000
username = sys.argv[1]
mySocket = socket.socket()
mySocket.connect((host, port))
dataToSend = [public_key, username.encode()]
dataSend = pickle.dumps(dataToSend)
mySocket.send(dataSend)
在控制台中的错误表示
dataSend = pickle.dumps(dataToSend)
_pickle.PicklingError: Can't pickle <class '_cffi_backend.CDataGCP'>: attribute lookup CDataGCP on _cffi_backend failed
的关键是与cryptography
library产生。
你的问题应该是关于为什么你不能泡菜的CFFI对象。你正在酸洗的原因是因为你想通过套接字发送一个任意的对象作为数据,但是你的问题在于不容易被腌制的特定类型的对象。 –
你能告诉我们什么项目提供'generateRSA()'函数吗?然后我们可以帮助您为私钥生成数据;它现在是一个不容易发送的对象,例如,不是一个字符串。 –
这就是Python密码术库。 https://cryptography.io/en/latest/hazmat/primitives/asymmetric/rsa/ –