gpt4 book ai didi

python - 从 python SSL 服务器接收到的数据不正确

转载 作者:太空宇宙 更新时间:2023-11-03 13:05:31 24 4
gpt4 key购买 nike

我正在尝试修改我用 python 套接字库编写的套接字服务器,以使用 python 的 SSL 库进行加密。

我无法成功打开到服务器的连接,用 SSL 上下文包装它并将数据发送到服务器,但发送回客户端的数据不是应该的。

我怀疑服务器响应没有在客户端解密,但我不知道为什么。我对 SSL/TLS 和一般网络还很陌生,所以...我错过了什么?

客户端也是用python写的(暂时为了方便测试)

代码:

相关服务器内容:

def sslServerLoop():
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((host, port))
s.listen(5)

context = ssl.create_default_context(ssl.Purpose.CLIENT_AUTH)
context.load_cert_chain('cert.pem')

while True:
conn, addr = s.accept()
sslConn = context.wrap_socket(conn, server_side=True)
data = sslConn.recv(1024)
sslConn.sendall(response)
sslConn.close()

相关客户资料:

context = ssl.create_default_context(cafile='cert.pem')
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s = context.wrap_socket(s, server_hostname=server_addr)
s.connect((address, port))
s.sendall(msg)
s.shutdown(socket.SHUT_WR)
response = s.recv(1024)

从客户端发送到服务器工作正常,但发送回客户端的数据是错误的。例如,如果我在服务器端设置 response = bytes([1]),我会收到 b'\x17\x03\x03\x00\x19\xac\xb6\x7f@\xc0\xd3\xce%\x13G\x01\xbd\x88y\xf0\xda..\x02\xf9\xe4o\xdd\x1a\xdb' 在客户端。每次我尝试运行它时,其中大部分都会发生变化,但前 5 个字节始终相同(这部分是我怀疑它没有被解密的部分原因)。

cert.pem 是使用 openssl 生成的自签名证书,如 python 3 SSL 模块文档中所述

最佳答案

关闭用于 SSL 的套接字是不合法的。这是违反协议(protocol)的行为。您必须通过您正在使用的 SSL/TLS API 关闭。

关于python - 从 python SSL 服务器接收到的数据不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49264265/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com