我有一个字符串来加密然后解密加密的字符串。 我可以使用php的以下功能
来做到这一点 string mcrypt_generic ( resource $td , string $data );
如果 $ data 尺寸 60MB ,则成功。但我需要加密/解密大于1GB的文件。对于较大的数据库,我得到**内存超出范围**错误。我有以下配置,
ini_set('memory_limit', '2048M'); // 2GB
但得到同样的错误。 请建议我该怎么做。
感谢。
答案 0 :(得分:1)
PHP,ext / mcrypt或libmcrypt没有发出该错误消息...至少不是直接发生的,它可能是由PHP错误引起的,而不是预设限制的结果。
但无论如何,这样的大文件应该一次处理一小块。例如,您可以从源文件中读取最多4kb,加密其中的一小部分,将结果附加到目标文件 - 在循环中重复该操作直到您处理完所有文件。
这当然只是一个例子,但你应该把它作为一般如何处理大文件的一个例子。如果你想加密某些东西,我建议你使用一个现有的,经过验证的工具,为你完成所有这些工作,否则你需要处理的细节太多了。