@
riceball 感谢反馈!你提的这几点都挺切中要害的,顺着你的问题我也分享一下当时设计时的一些考量:
1. 关于“协议与剪贴板的关系 / 重造轮子”
你说得很对,严格来说 ECP 的本质确实是一个应用层的 Payload 加密协议,剪贴板只是我选的一种 Out-of-Band 传输介质。文档里写“剪贴板协议”确实容易让人产生误解,后续我把 README 的架构图重新整理一下,把 Crypto Layer 和 Transport Layer 彻底解耦开。
之所以没有直接拿现成的协议来套,主要是想搞一个默认带 PQC 混合双棘轮的纯前端轻量实现。而且在没有服务器协调握手的情况下,INIT 报文需要把双方的 PQC 身份包、临时公钥和复合签名全部塞进一个定长的 Payload 里,现有的通用包格式很难直接套用。
2. 关于“使用体验麻烦 / 兼容 Universal Clipboard & KDE Connect”
体验这块确实是目前最大的痛点,复制粘贴一长串 Base64 体验不够傻瓜。
其实这个项目预期的传输管道就是大家日常用的各种 Chat App 、IM 软件、社交平台甚至邮件。之所以没做成 Apple 剪贴板或 KDE Connect 那种系统级同步,是因为它们基本都依赖局域网广播、后台常驻或者特定平台生态,破坏了“纯 Web 、无安装、离线可用”的前提。后续要怎么在不破坏零后端前提下把体验做得更流畅,我还在思考和探索,也欢迎大家提想法。
3. 关于“为什么把编译后的 JS 存到 Git 里”
这个其实是故意这么设计的。
因为这是一个主打安全和加密的项目,我希望任何拿到代码的人,哪怕本地完全不装 Node 环境、不跑 npm build ,也能直接打开 Git 里的产物进行完整性审计与校验。直接把 JS 留在仓库里,不仅方便静态托管部署,也能让代码的构建结果完全透明、随时可被 verify 。
再次感谢建议,欢迎继续讨论!