我有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 specific on server - 我不知道这是否是一个问题,但它说 cipher() 使用了可能被禁用的 srand - 我该如何解决这个问题 - 我不能更改 php 配置中的任何内容,我只有 ftp 访问服务器。
PC 上的 PHP:5.3.9 服务器上的 PHP:5.2.17