沃梦达 / 编程问答 / php问题 / 正文

CakePHP Security::cipher() 不适用于服务器

CakePHP Security::cipher() is not working specifically on server(CakePHP Security::cipher() 不适用于服务器)

本文介绍了CakePHP Security::cipher() 不适用于服务器的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在读取加密的 cookie 时遇到问题.调试显示服务器上的 Security::cipher() 以某种方式损坏.反正我能解决吗?

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?

下面是细分.

代码

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

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

本地

appviewspageshome.ctp (line 17)
�J��WtJ0�

appviewspageshome.ctp (line 19)
Hello World

服务器

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

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

推荐答案

Security::cipher() 正在使用 srand() 函数,该函数被 suhosin 模块禁用,该模块默认用于许多 Apache、PHP 服务器.

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

禁用 suhosin 和 Security::cipher() 将正常工作.

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

这篇关于CakePHP Security::cipher() 不适用于服务器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本文标题为:CakePHP Security::cipher() 不适用于服务器

基础教程推荐