验证Python套接字是否加密
我制作了一个TCP echo客户端/服务器,其中包含来自和的位。如何验证套接字是加密的,并且不能被拦截和读取?我尝试过使用Wireshark,但SSL和非SSL都显示加密的数据包。这使我怀疑它们的有效性 客户端:验证Python套接字是否加密,python,sockets,ssl,encryption,tcp,Python,Sockets,Ssl,Encryption,Tcp,我制作了一个TCP echo客户端/服务器,其中包含来自和的位。如何验证套接字是加密的,并且不能被拦截和读取?我尝试过使用Wireshark,但SSL和非SSL都显示加密的数据包。这使我怀疑它们的有效性 客户端: import socket import ssl sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) server_address = ('HOSTNAME', 10000) print('Connecting to %s
import socket
import ssl
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_address = ('HOSTNAME', 10000)
print('Connecting to %s port %s' % server_address)
sock.connect(server_address)
ssl_sock = ssl.wrap_socket(
sock,
ssl_version = ssl.PROTOCOL_TLSv1_2
)
try:
message = str.encode(input('>>> '))
print('Sending "%s"' % message)
ssl_sock.sendall(message)
amount_received = 0
amount_expected = len(message)
while amount_received < amount_expected:
data = ssl_sock.recv(16)
amount_received += len(data)
print('Received "%s"' % data)
finally:
print('Closing socket')
ssl_sock.close()
import socket
import ssl
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_address = ('HOSTNAME', 10000)
print('Starting up on %s port %s' % server_address)
sock.bind(server_address)
sock.listen(1)
while True:
print('Waiting for a connection')
try:
connection, client_address = sock.accept()
stream = ssl.wrap_socket(
connection,
server_side = True,
certfile = 'fullchain.pem',
keyfile = 'privkey.pem',
ssl_version = ssl.PROTOCOL_TLSv1_2
)
except KeyboardInterrupt:
print('\nStopping server')
exit()
except:
print('ERROR')
continue
try:
print('Connection from', client_address)
while True:
data = stream.recv(16)
print('Received "%s"' % data)
if data:
print('Sending data back to the client')
stream.sendall(data)
else:
print('No more data from', client_address)
break
finally:
stream.close()
服务器在我的VPS上运行,并使用HTTPS的真实证书。一切都正常,但我只是想在我真正构建任何东西之前确保这个测试是安全的