如何仅通过客户端加密存储用户上传的文件?

时间:2018-08-17 10:18:59

标签: encryption storage client-side

我想构建一个用户上传文件的应用程序。但是服务器的所有者永远不能访问文件中的任何数据,而只能访问加密内容。

如果我必须使用Java自己实现它,我会做类似的事情:

    使用每个文件(或每个用户,因为我不需要每个文件访问控制)的随机密钥对文件进行
  • 对称加密。然后,对随机密钥进行非对称加密(每个需要访问文件的用户一次),并沿着文件存储在服务器上
  • 用户具有密码,该密码用于加密在服务器上存储的帐户创建私钥以及公钥中随机生成的密码。
  • 用户密码哈希(不是密码本身)也用作身份验证密码,以避免有多个密码,而且还避免将用户密码发送到服务器(服务器通常会计算并比较此哈希的加盐哈希的密码)

我如何实现这样的自定义应用程序(使用库?使用http API运行其他服务器?,还有其他功能?)?

我发现https://www.minio.io/features.html是一台具有s3兼容rest API的http服务器,该服务器具有“同时支持服务器端和客户端加密”,但是找不到关于客户端加密的足够文档。

0 个答案:

没有答案