2014-02-23 32 views
2

爲什麼,如果我把

w3Zho+mol6yATVfhqi8KkQ== ("ln -s") 

那麼這不起作用:

function cdecrypt($data) { 
    $key = '000000'; 
    $iv = '1234567812345678'; 
    $decrypted = openssl_decrypt($data, "aes-128-cbc", $key, 0, $iv); 
    return $decrypted; 
} 

$c = urlencode($_GET['c']); 
$comm = cdecrypt(urldecode($c)); 
echo $comm; 

錯誤:

Fatal error: Allowed memory size of 268435456 bytes exhausted 
    (tried to allocate 3095496193 bytes) in /var/www/ai/service.php on line 7 

但如果我更改加密的字符串爲

QYRiSyTwk4r6Js6jNVlziQ== ("ln -ls") 

它顯示解密的字符串(在這種情況下ln -ls)就好了?

+0

關鍵需要是16個字節。但是不確定其他問題。 – jww

+0

難道這是與變量名稱中允許的字符限制有關嗎?還是這不會影響使用字符串作爲變量? –

回答

0

如果你可以編輯你的php.ini文件,你應該通過添加或modifiying在php.ini文件中該行增加內存限制高於3095496193個字節:

memory_limit = 300M 

或更高的限制。

相關問題