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
控制器里
function beforeFilter()
{
Security::setHash(‘md5′);
}
这个方法虽然简单,但并不能解决本文所遇到的问题,它会附加Security.salt一起生成md5,并不是单纯地用密码计算。