在cakephp中保存哈希密码

时间:2014-03-07 09:45:43

标签: php mysql cakephp hash

我试图哈希密码及其工作正常。但是当插入或更新到mysql数据库时,我必须只保存哈希密码。

Controller.php (calling below method in add() method)

public function beforeSave() {
App::uses('Utitlity','Security');
  if(!empty($this->request->data['Mailinglist']['Password'])) {
  $this->request->data['Mailinglist']['Password'] = Security::hash($this->request-                 >data['Mailinglist']['Password']);
 }
 return true;
 }

但是在上面的代码中,原始密码存储在数据库中,而不是哈希值。请指导我。

3 个答案:

答案 0 :(得分:3)

http://book.cakephp.org/2.0/en/models/callback-methods.html#beforesave

您应该使用$this->data代替$this->request->data

确保尝试debug($this->data);

public function beforeSave() {
    App::uses('Utitlity', 'Security');
    if (!empty($this->data['Mailinglist']['Password'])) {
        $this->data['Mailinglist']['Password'] = Security::hash($this->data['Mailinglist']['Password']);
    }
    return true;
}

答案 1 :(得分:1)

仅供参考,

$ this->数据已被弃用。所以现在你应该使用$ this-> request-> data。

参考:http://book.cakephp.org/2.0/en/appendices/2-0-migration-guide.html#controller

答案 2 :(得分:0)

您应该在相关模型中使用Save方法之前。并使用。访问数据 $this->data['Mailinglist']['Password']

不是$this->request->data['Mailinglist']['Password']