给定10M字节流,我需要压缩它(gzip或否则)并加密它(Rijndael-128),然后将它存储在磁盘上。在某一时刻,也将需要反向操作。
这是web应用程序的一部分,主要是用PHP开发的。我已经用PHP写了几行。但是,我在想用C编写这个组件并从PHP调用它是否更好。执行时间不是最相关的方面,但是内存使用和CPU负载是最重要的。
基于此,是否值得将原始字节流写入磁盘,然后在其上运行C/C++程序来进行压缩和加密?
发布于 2014-06-08 15:06:33
确保如果是流,则将其作为流处理,并将资源(RAM)的使用保持在最低限度,即不要将流处理为一个大字节数组。尝试并调整缓冲区大小。
如果速度不够快,可以使用C和AES-NI CPU指令编写用于流的PHP库。您可以使用已经部署了AES-NI的PHP的OpenSSL函数。Bothan也可以使用,它是一个C++的库,专注于流支持,如果可用的话,它也使用AES-NI。
无论您做什么,不要将中间明文写入磁盘,这既不安全,也带来了不必要的I/O (+ OS访问)瓶颈。
https://stackoverflow.com/questions/24106930
复制相似问题