671 字
2 分钟
NodeCrypt 端到端加密聊天系统部署教程
NodeCrypt 端到端加密聊天系统部署教程
简介
NodeCrypt 是一个真正的网页端到端加密(E2EE)聊天系统,实现了完全的零知识架构:服务器、网络中间人甚至系统管理员都无法获取任何明文消息。所有加密与解密都在客户端本地完成,服务器仅作为加密数据的“盲中继”。
TIP项目采用无数据库设计,所有数据仅在内存中临时存在,新加入成员无法看到历史消息,天然具备前向安全性。
系统架构
| 层级 | 技术 |
|---|---|
| 前端 | ES6+ 模块化 JavaScript,无框架依赖 |
| 后端 | Cloudflare Workers + Durable Objects |
| 通信 | WebSocket 实时双向通信 |
| 构建 | Vite |
一键部署到 Cloudflare Workers
NodeCrypt 原生托管在 Cloudflare Workers,推荐通过一键部署按钮或本地构建完成部署。
方式一:部署按钮
点击官方提供的 Deploy to Cloudflare Workers 按钮,按指引授权并创建 Worker 即可。
方式二:本地构建部署
Fork 或克隆仓库后,在本地执行:
# 安装依赖npm install
# 构建npm run build
# 部署到 Cloudflare Workers(需已登录 wrangler)npm run deployNOTE部署依赖 Wrangler,请提前通过
wrangler login登录 Cloudflare 账号。
零知识架构要点
NodeCrypt 的安全建立在三层体系之上:
- RSA-2048 服务器身份验证:服务器启动时生成临时密钥对,每 24 小时自动轮换,客户端验证公钥防止中间人攻击。
- ECDH-P384 密钥协商:客户端与服务器各自生成椭圆曲线密钥对,通过 Diffie-Hellman 建立独立加密通道。
- 混合对称加密:服务器通信使用 AES-256-CBC,客户端间通信使用 ChaCha20,每条消息使用独立 IV/Nonce。
房间密码机制
房间密码作为密钥派生因子参与端到端加密:
最终共享密钥 = ECDH_共享密钥 XOR SHA256(房间密码)- 不同密码的房间无法解密彼此消息(密码错误隔离)。
- 服务器永远无法获知房间密码。
安全建议
WARNING房间密码直接决定端到端加密强度,建议使用复杂且随机的强密码;一旦密码泄露,该房间所有通信内容都可能被解密。
- 使用最新版本的现代浏览器,确保 Web Cryptography API 的可用性与性能。
- 私密对话点击对方头像即可发起,房间内其他成员完全无法看到私聊内容。
- 本项目仅供学习与技术研究使用,请在合法合规的前提下使用。
祝你天天开心!
NodeCrypt 端到端加密聊天系统部署教程
https://blog.sywan.top/posts/nodecrypt/ 部分信息可能已经过时









