使用mcrypt和phpencryption上传的pdf文件

我目前设置了一个CentOS盒子,利用mcrypt来encryption/解密数据库中的数据。 在我急匆匆地,我忘记了我也需要一个解决scheme来encryption文件(主要是pdf,xls和txt文件在这里和那里)。

有没有办法利用mcryptencryption上传的PDF文件? 我明白file_get_contents()与txt的可能性; 是一个类似的解决scheme可用于其他格式?

谢谢!

我知道这个问题有一个公认的答案,但最干净的方法是使用encryptionstreamfilter 。 PHP手册上的页面有完整的细节,所以我不会在这里复制任何代码,但它似乎是实现这一点的最简单的方法。 您将一个streamfilter附加到文件句柄资源,并且数据在从文件读取或写入文件时被透明地encryption或解密。 最棒的是使用mcrypt库来完成所有这些。

编辑

可能最干净的(也是更通用的/支持的)选项将是使用Zend_File_Transfer库(如果你不熟悉Zend Framework的独立库或组合,你可以使用Zend Framework的独立库)。

具体来说,看看Zend_File_Transfer库的filter 。 它使用MCrypt的encryption/解密filter(并具有其他必备的/好的function,如重命名,进度条等)。

我以前用它来进行基本的上传,而且效果很好。

如果链文件_get_contents – > mcrypt_encrypt – > mcrypt_decrypt – > file_put_contents不能在PDF文件(为什么不应该),你仍然可以把它当作一个二进制数据,而不是文本。

或者,以更系统的方式,使用EncFS并在那里创buildencryption挂载点和存储文档。