2015-04-08 14 views
1

我有一个字符串来加密,然后解密加密的字符串。 我可以使用PHP的下面的函数什么是php的mcrypt_generic()允许的最大数据量(文本可以编写)?

string mcrypt_generic (resource $td , string $data); 

成功,如果$数据大小是60MB 做到这一点。但我需要加密/解密大于1GB的文件。对于较大的数据库,我得到**内存超出范围**错误。我有以下配置,

ini_set('memory_limit', '2048M'); // 2GB 

但是得到了同样的错误。 请建议我该如何做到这一点。

谢谢。

回答

1

该错误消息不是由PHP,ext/mcrypt或libmcrypt发出的......不是至少直接发出,它可能是由PHP错误引起的,而不是由预设的限制造成的。

但是无论如何,这样的大文件应该一次处理一个小块。例如,您可以从源文件中读取最多4kb的数据,对其中的一小部分进行加密,然后将结果附加到目标文件中 - 在循环中重复该操作,直到完成全部处理。

这只是一个例子,但你应该把它作为一个整体来处理大文件。如果你想加密某些东西,我建议你使用一个现有的,经过验证的工具来完成它,否则就有太多的细节需要处理,甚至不知道。

相关问题