php的mcrypt_generic()允许的最大数据大小是多少(文本为)


What is the maximum size allowed data (text fo be encripted) by mcrypt_generic() of php?

我有一个字符串要加密,然后解密加密的字符串。我可以使用php的以下功能来完成

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

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

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

但也出现了同样的错误。请建议我怎么做。

谢谢。

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

但不管怎样,这样大的文件应该一次处理一小块。例如,你可以从源文件中读取高达4kb的内容,加密其中的一小部分,将结果附加到目标文件中——循环重复,直到你处理完所有内容

当然,这只是一个例子,但你应该把它作为一个如何处理大文件的例子。如果你想加密一些东西,我建议你使用一个现有的、经过验证的工具,它可以为你做所有的事情,否则有太多的细节需要处理,你甚至都不知道。