使用OpenSSL和PHP存储数据?

时间:2010-10-08 03:55:43

标签: php encryption openssl

对于其中一个角色,我一直通过电子邮件收到人们提供的几份文件。这是非敏感数据,所以电子邮件很好,但我想建立一个小门户,人们可以上传文件,只有当他们提交所需的所有文件时,我才会收到请求已完成的通知。

无论内容如何,​​我都希望安全地存储文件。考虑到我的其他需求,它也让我考虑加密。最初我看了MySQL中的AES加密,但普遍的共识是没有好处,因为密钥在服务器中很容易获得。所以这让我想到了公钥/私钥加密。

这是我正在研究的计划,看看它是否有效,或者它是否已经完成,我找不到标准实现:

  1. 我生成公钥/私钥对。公钥进入Web服务器,私钥留在我的计算机上。
  2. 用户通过网页将文件通过https网站上传到我的网络服务器。
  3. 上传脚本获取文件,使用公钥对其进行加密,并将其存储在文件系统或数据库中。
  4. 完成后,我会收到通知并连接到服务器并通过SSH或其他加密连接下载文件。
  5. 最后,我使用私钥在本地解密文件并根据需要进行处理。
  6. 在这种情况下我缺少哪些缺陷?或者,如果有更好的方法来实现这一点,任何人都能指出我正确的方向吗?感谢。

1 个答案:

答案 0 :(得分:0)

您的计划基本上表示您信任服务器,但不信任文件系统。这用于您使用共享服务或第三方备份,或者希望通过定期销毁加密密钥来强制执行数据销毁策略。

如果您不希望在上传之前加密文件,那么您可以做的最好。

唯一的技巧是设置Web服务器,以便将上传的文件严格保存在内存中,直到加密它们为止。例如,PHP甚至会在调用脚本之前将上传的文件写入/ tmp。