下载和上传期间PHP加密文件

时间:2013-10-19 01:17:30

标签: file security encryption upload download

这似乎应该很容易找到,但我已经尝试了我能想到的所有搜索词组合,我能找到的所有答案都是“接近但没有雪茄”。看了半个小时后,我终于决定问了。

我想要做的,明确措辞,是确保我的用户上传到我的网页或从我的网页下载的文件在传输过程中被加密。我不满意只是将https://放到文件链接的开头,因为这些文件需要受密码保护。当然,为了密码保护它们,我已经设置了目录权限,使得内部的文件根本无法通过URL访问。我使用PHP脚本来管理上传和下载。

我已经尝试检查关于headers()和mcrypt_encrypt()等主题的php.net页面,并且空手而归。 headers()上的页面似乎只适用于HTTP,并没有告诉我如何使用加密协议进行文件下载(如果这样做的话),我不能使用mcrypt_encrypt()依赖于假设mcrypt_decrypt()可以稍后运行以使文件可用,因为显然mcrypt_decrypt()在下载后无法在客户端运行(mcrypt_encrypt()也不能在上载之前运行客户端),所以我想知道我将使用什么方法来确保用户的浏览器能够以不需要用户操作的方式加密和解密这些文件 - 就像其他所有内容都被加密和解密一样。

我想假设我在这些网页网址上强制执行https的事实将自动处理它处理网页输出的方式。但是,我确实观察到具有单独文件路径(如图像和CSS)的文件不会自动加密,并且我用来触发这些文件下载框的代码包含标头信息,这意味着它是一个单独的事务,可能没有加密。

我真的,从很多角度考虑过这个问题,我只是没有看到解决方案。有人想帮我吗?

1 个答案:

答案 0 :(得分:0)

使用HTTPS进行安全(加密)数据传输。将文件存储在每个用户的文件夹中,并且仅在身份验证后允许访问(通过HTTPS)。

您很难找到其他解决方案的原因是因为HTTPS是解决方案。

如果要存储在磁盘上加密的文件,可以在上传时使用对称块(流)密码加密它们,并在下载时反向执行。您可以使用每个用户唯一的密钥作为对称密钥。