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