socket加密传输
1.网络编程之IP地址&子网掩码2.端口&端口号3.Socket(套接字)4.socket模块中socket类
5.socket加密传输
6.socket加密传输&mysql应用7.Socket客户端实现8.Socket客户端与服务端9.TCP(Transmission Control Protocol)传输控制协议10.网络传输数据的编解码11.TCP客户端开发12.socket之send和recv原理剖析13.多任务版TCP服务端程序开发14.UDP15.http协议之网址16.http协议之简介17.http协议之请求报文18.http协议之响应报文19.搭建Python⾃带静态Web服务器20.自研静态Web服务器并返回固定⻚⾯数据21.静态web服务器-根据请求返回指定页面数据22.静态Web服务器-多任务版23.静态Web服务器-以⾯向对象的模式开发24.静态Web服务器-命令⾏启动并动态绑定端⼝号在网络通信中,保护数据的安全性是非常重要的。Socket模块本身并不提供对数据的加密传输功能,但可以与其他加密协议或库结合使用,实现加密传输。
常见的加密传输方式包括SSL/TLS和SSH
SSL/TLS加密传输
说明:
- 使用Python的ssl模块可以对Socket连接进行SSL/TLS加密。
- 首先需要创建一个Socket对象,然后使用
ssl.wrap_socket()
方法将其包装为加密的套接字。 - 在包装过程中,可以指定SSL/TLS相关的参数、证书文件等。
- 之后就可以通过加密的套接字进行通信了。
示例:
1 import ssl 2 import socket 3 4 # 创建未加密的Socket对象 5 server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 6 server_socket.bind(('localhost', 8888)) 7 server_socket.listen(5) 8 9 # 使用ssl.wrap_socket()进行包装,创建加密的套接字 10 ssl_sock = ssl.wrap_socket(server_socket, keyfile='server.key', certfile='server.crt', server_side=True) 11 12 print("服务器已启动,等待连接...") 13 14 while True: 15 # 接受客户端连接 16 client_sock, addr = ssl_sock.accept() 17 print(f"收到来自 {addr} 的连接请求。") 18 19 # 进行加密通信 20 while True: 21 data = client_sock.recv(1024).decode() 22 if not data: 23 break 24 print(f"收到消息:{data}") 25 response = "Hello, Client!" 26 client_sock.send(response.encode()) 27 28 # 关闭连接 29 client_sock.close()
SSH加密传输
说明:
- 使用Paramiko库可以在Python中实现SSH协议的功能,包括加密的传输和远程命令执行等。
- Paramiko提供了ssh模块,可以创建SSHClient对象进行SSH连接和通信。
- 通过SSHClient对象可以进行认证、建立加密通道,然后进行数据传输。
示例:
1 import paramiko 2 3 # 创建SSHServer对象 4 ssh_server = paramiko.SSHServer() 5 6 # 设置服务器的主机密钥 7 host_key = paramiko.RSAKey.generate(2048) 8 ssh_server.add_host_key(host_key) 9 10 print("服务器已启动,等待连接...") 11 12 while True: 13 # 接受客户端连接 14 client, addr = ssh_server.accept() 15 print(f"收到来自 {addr} 的连接请求。") 16 17 # 进行认证 18 transport = client.get_transport() 19 transport.auth_none(username='test') 20 21 # 打开一个会话 22 session = transport.open_session() 23 session.exec_command('ls -l') 24 25 # 获取输出结果 26 stdout = session.makefile('rb', -1).readlines() 27 for line in stdout: 28 print(line) 29 30 # 关闭会话和连接 31 session.close() 32 client.close()
上述示例使用Paramiko库创建了一个SSH服务器,并接受客户端的连接请求。之后进行认证,执行远程命令并获取输出结果。通过Paramiko库实现的SSH服务器可以实现安全加密的数据传输和远程命令执行功能。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律