1
我使用tcp套接字編程使用RSA加密的客戶端 - 服務器通信。我生成公鑰和私鑰,但是當我想客戶端和服務器之間交換的公共密鑰我得到這個錯誤:Python 2.7中的套接字錯誤,向客戶端發送公共rsa密鑰
類型錯誤:必須可以轉換成一個緩衝,不公鑰
這是服務器端的代碼:
import socket
import rsa
print "Generating keys"
(public, private) = rsa.newkeys(1024, poolsize=2)
print "Keys generated."
tcpSocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
tcpSocket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR,1)
tcpSocket.bind(("0.0.0.0", 1025))
tcpSocket.listen(1)
print "Waiting for client..."
(client, (ip, port)) = tcpSocket.accept()
print "Connection received from: ", ip
client.send(public) #This is where I get the error
我已經試過這一行太:
client.send(str(public))
有了這個,我可以把在p ublic鍵,但是我不能用它來加密數據(因爲現在公鑰是一個字符串)。
謝謝你的幫助!
正是我需要的,謝謝。我有一個問題pickleing公鑰,但我解決了這個帖子:http://stackoverflow.com/questions/2204155/why-am-i-getting-an-error-about-my-class-defining-slots - 當 - 試圖對pickl – lapatatandante 2015-04-01 15:31:30