我正在尝试保护 Python 套接字服务器和客户端之间传输的消息的安全。我做了研究并发现了以下链接: Wrapping an existing socket in SSL - Python Python socket client and server http://the.randomengineer.com/2013/10/11/a-practitioners-overview-to-ssl-and-viewing-the-certificate-chain-from-python/
并查看了Python文档: https://docs.python.org/3.5/library/ssl.html
但我仍然不明白到底如何做到这一点。网上找到的大多数教程都涉及 Apache 或 HTTP 服务器。
这里有一些代码可以准确解释我想要问的问题:
客户:
import socket, sys
host = 'localhost'
port = 5558
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
s.connect((host,port))
except socket.error as e:
print (str(e))
y = input('Press enter to close')
sys.exit()
data = 'test'
s.sendall(str.encode(data))
服务器:
import socket, time
host = ''
port = 5558
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
s.bind((host, port))
s.listen(10)
sock, addr = s.accept()
data = sock.recv(2048)
print(data.decode('utf-8'))
最佳答案
示例:
from Crypto.Cipher import AES
from Crypto import Random
IV = Random.new().read(32)
c = AES.new('abcd1234efgh5678', AES.MODE_CFB, IV)
data = c.encrypt('test')
c.decrypt(data)
代码未经测试。
关于python - 如何保护 Python 3 中套接字客户端和服务器之间传输的消息的安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31219771/