问题描述
我目前正在尝试构建一个项目(自学),该项目本质上是一个用于共享文件的网站(两个用户之间)。我想使用ECIES(主要目标)加密文件(pdf),然后将其发送给另一个用户。我的问题是:
- 如何在客户端加密文件?
- 如何将加密文件发送到服务器(使用哪种语言/库/技术)
正如我的问题所暗示的,我是Web开发的初学者。
解决方法
您可能已经知道,在这样的网站上不会得到太多使用,因为很难证明您没有进行MITM攻击。从密码学的角度来看,您应该使用/研究的技术是:
-
短暂的:短暂的椭圆曲线Diffie-Hellman,使用具有快速,恒定时间标量乘法的强曲线,例如
curve25519
/x25519
,得出可以使用的共享秘密(由使用强大的哈希函数(例如x
,SHA-256
或SHA-3
)对Blake2b
坐标进行哈希处理。 -
使用第一步中约定的密钥,并使用强大的已认证 对称密码(例如
ChaCha20-Poly1305
)进行加密。 -
有无数种选择,也许,如果您想尝试分散管理,该网站可以帮助将用户彼此路由到IPFS上。