python实现服务端与客户端加密通讯代理服务代码
代码语言:python
所属分类:其他
代码描述:python实现服务端与客户端加密通讯代理服务代码,客户端与服务端都要运行这个代码建立加密通讯隧道,然后进行代理访问, 加密传输 - 使用AES-256加密所有流量 支持HTTP/HTTPS - 支持普通HTTP和HTTPS(CONNECT)代理 双向转发 - 高效的数据双向转发 多线程 - 支持多个并发连接 简单部署 - 单文件,易于部署
代码标签: python 服务端 客户端 加密 通讯 代理 服务 代码
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
# ## 使用说明
# ### 1. 安装依赖
# ```bash
# pip install pycryptodome
# ```
# ### 2. 修改密钥
# 在代码开头修改 `SECRET_KEY`,服务端和客户端必须使用相同的密钥:
# ```python
# SECRET_KEY = b'your-secret-key-change-this!!'
# ```
# ### 3. 运行服务端(在有公网IP的服务器上)
# ```bash
# python proxy.py server --port 8888
# ```
# ### 4. 运行客户端(在本地电脑上)
# ```bash
# python proxy.py client --server-host <服务器IP> --server-port 8888 --local-port 1080
# ```
# ### 5. 配置浏览器代理
# 将浏览器的HTTP代理设置为:`127.0.0.1:1080`
# ## 功能特点
# ✅ **加密传输** - 使用AES-256加密所有流量
# ✅ **支持HTTP/HTTPS** - 支持普通HTTP和HTTPS(CONNECT)代理
# ✅ **双向转发** - 高效的数据双向转发
# ✅ **多线程** - 支持多个并发连接
# ✅ **简单部署** - 单文件,易于部署
# ## 安全提示
# ⚠️ 请务必修改默认密钥
# ⚠️ 建议在生产环境添加身份验证
# ⚠️ 建议添加流量限制和访问控制
# ⚠️ 仅供学习使用,请遵守当地法律法规
#!/usr/bin/env python3
"""
加密代理程序 - 服务端和客户端合一
使用方法:
服务端: python proxy.py server --port 8888
客户端: python proxy.py client --server-host <服务器IP> --server-port 8888 --local-port 1080
"""
import socket
import threading
import argparse
import struct
import hashlib
import select
import time
try:
from Crypto.Cipher import AES
from Crypto.Random import get_random_bytes
from Crypto.Util.Padding import pad, unpad
except ImportError:
print("请先安装加密库: pip install pycryptodome")
exit(1)
# ===== 配置 =====
SECRET_KEY = b'your-secret-key-change-this!!' # 请修改此密钥!
class Encryptor:
"""AES加密解密类"""
def __init__(self, key):
self.key = hashlib.sha256(key).digest()
def encrypt(self, data):
"""加密数据"""
iv = get_random_bytes(16)
cipher = AES.new(self.key, AES.MODE_CBC, iv)
encrypted = cipher.encrypt(pad(data, AES.block_size))
return iv + encrypted
def decrypt(self, data):
"""解密数据"""
if len(data) < 16:
raise ValueError("数据太短")
iv .........完整代码请登录后点击上方下载按钮下载查看















网友评论0