修改CakePHP默认Auth的加密方式为MD5

CakePHP默认Auth的加密方式虽然安全,但是还有有人喜欢用MD5,比如我,嘿嘿
在阿辉那找到了解决办法,顺便在这里记录下。
第一步,在User的Model里加入如下代码:

var $userModel = 'User'; 
 
var $fields = array(
    'username' => 'username',
    'password' => 'password',
); 
 
function hashPasswords($data){
    if (is_array($data) && isset($data[$this->userModel])) { 
        if (isset($data[$this->userModel][$this->fields['username']]) && isset($data[$this->userModel][$this->fields['password']])) { 
        	$data[$this->userModel][$this->fields['password']] = $this->password($data[$this->userModel][$this->fields['password']]); 
        } 
    } 
    return $data;
} 
 
//采用md5方式
function password($password){ 
	return md5($password); 
}

然后在/app/app_controller.asp的beforeFilter()内加入:

$this->Auth->authenticate = $this->Auth->getModel();

参考:http://www.71151461.cn/articles/view/30

你可能还对下面的日志感兴趣:

相关标签: Development & Design and tagged , , .

2 Responses to 修改CakePHP默认Auth的加密方式为MD5

  1. 银子 says:

    控制器里

    function beforeFilter()
    {
    Security::setHash(‘md5′);
    }

    • 唯枫 says:

      这个方法虽然简单,但并不能解决本文所遇到的问题,它会附加Security.salt一起生成md5,并不是单纯地用密码计算。

发表评论

电子邮件地址不会被公开。 必填项已被标记为 *

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>