我将encryption的(AES 256)文件存储在nginx上。 我通过GET请求打开它们,并使用一个键作为查询参数。 例如http://www.my_secure_nginx.com/files/secret_audio.mp3?key=mysecretkey
你可以请build议解决scheme如何做nginx文件服务器(也许现有的filter)来维护分块的响应。 换句话说,我需要在nginx上执行即时解密文件。
最简单的方法是在Lua中编写自己的nginx模块。 Lua-resty-string模块已经支持AES 。 添加一些文件处理代码阅读代码,你就完成了。 Lua模块非常快,因为他们在非阻塞I / O中工作。
要记住的重要部分是处理填充 – 原始文件大小必须存储在某处(DB,xattr等)并传递给nginx或读取。
另一个不重要的话题是最终支持随机访问。 数据必须在CTR模式下进行AES加密。 XTS,CBC,CFB也不错,但需要多一点的开发工作。