CakePHP Security::cipher() is not working specific

2019-02-24 20:57发布

问题:

I'm having a problem with reading the encrpyted cookie. Debugging revealed that Security::cipher() on server is somehow broken. Is there anyway I could solve it?

Below is the breakdown.

Code

$value = "Hello World";
$key = Configure::read('Security.salt');

$val = Security::cipher($value, $key);
debug($val);
$ret = Security::cipher($val, $key);
debug($ret);

Local

app\views\pages\home.ctp (line 17)
�J��WtJ0�

app\views\pages\home.ctp (line 19)
Hello World

Server

app/views/pages/home.ctp (line 17)
x�.��9v��

app/views/pages/home.ctp (line 19)
�{�U��g��O

回答1:

Security::cipher() is using srand() function which is disabled by suhosin module which comes as default for many Apache, PHP servers.

Disable suhosin and Security::cipher() will work fine.