我的模型使用beforeSave(..)
来加密一个字段。
它在使用WAMP服务器的PC上工作正常,但是当我将它上传到服务器时,Security :: cipher(..)方法似乎返回随机值。
public function beforeSave()
{
if(isset($this->data[$this->alias]['somefield']))
{
$key = Configure::read('Security.salt');
$cipher = Security::cipher($this->data[$this->alias]['somefield'],$key);
echo $cipher.'</br>'.$this->data[$this->alias]['somefield'];
die;
$this->data[$this->alias]['somefield'] = $cipher;
}
return true;
}
此代码在我的PC上返回相同的密码和值对,但在服务器上的值相同,但从该值生成的密码是随机的。我发现这篇帖子CakePHP Security::cipher() is not working specifically on server - 我不知道这是不是问题,但是它说cipher()使用了可能被禁用的srand - 我怎么能解决这个问题 - 我无法改变php配置中的任何内容,我只是有ftp访问服务器。
PC上的PHP:5.3.9 服务器上的PHP:5.2.17
答案 0 :(得分:0)
我发现了这个:http://groups.google.com/group/cake-php/browse_thread/thread/7e6cda2e03a7c54?pli=1它似乎是它的真正的错误,我只是使用了这个人发布的功能,它运作正常。