feat(whatsapp): 实现 WhatsApp 风格的端到端加密通信原型

- 添加了基于 X3DH 和 Double Ratchet 的加密会话逻辑
- 实现了客户端密钥生成、bundle 注册与获取
- 构建了极简中继服务器用于转发加密消息
- 支持消息加密、解密及 MAC 校验- 提供完整演示流程,包括双向通信和多消息发送
- 使用 AES-CBC 加密和 HMAC-SHA256 认证
- 引入 X25519 密钥交换和 HKDF 密钥派生函数
- 包含一次性预共享密钥(OPK)管理机制
This commit is contained in:
2025-10-06 14:42:14 +08:00
parent f7eb913be3
commit 266ba6ad31
2 changed files with 356 additions and 3 deletions

View File

@@ -1,7 +1,7 @@
import ssl
import websocket
URL = "wss://192.168.1.3/ws/" # 注意走 443不要再连 8080 了
URL = "ws://192.168.1.41:9516/ws/" # 注意走 443不要再连 8080 了
# 如果你的 WS 路径是 /ws/,就写成上面这样;若是别的路径自己改
def on_message(ws, msg): print("收到:", msg)
@@ -9,7 +9,7 @@ def on_error(ws, err): print("错误:", err)
def on_close(ws, code, reason): print("关闭:", code, reason)
def on_open(ws):
print("连接成功")
ws.send("hello server")
ws.send("hello server mac")
if __name__ == "__main__":
websocket.enableTrace(True)
@@ -19,7 +19,8 @@ if __name__ == "__main__":
on_message=on_message,
on_error=on_error,
on_close=on_close,
header=["Origin: https://192.168.1.3"] # 如后端不校验 Origin 可删
# header=["Origin: https://192.168.1.3"] # 如后端不校验 Origin 可删
header=[] # 如后端不校验 Origin 可删
)
ws.run_forever(sslopt={
"cert_reqs": ssl.CERT_NONE,