2015-04-08 37 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的數據,對其中的一小部分進行加密,然後將結果附加到目標文件中 - 在循環中重複該操作,直到完成全部處理。

這只是一個例子,但你應該把它作爲一個整體來處理大文件。如果你想加密某些東西,我建議你使用一個現有的,經過驗證的工具來完成它,否則就有太多的細節需要處理,甚至不知道。

相關問題