可以找到:Blowfish密码Hasher Cakephp

时间:2015-03-10 09:43:56

标签: php cakephp

我刚刚下载了CakePHP,并按照教程来获取基础知识。一切都很顺利,直到我开始使用这个身份验证系统。

如果你转到以下网址,并转到密码哈希块(代码)。

http://book.cakephp.org/2.0/en/tutorials-and-examples/blog-auth-example/auth.html#authentication-login-and-logout

你会看到:

public function beforeSave($options = array()) {
if (isset($this->data[$this->alias]['password'])) {
    $passwordHasher = new BlowfishPasswordHasher();
    $this->data[$this->alias]['password'] = $passwordHasher->hash(
        $this->data[$this->alias]['password']
    );
}
return true;
}

问题是当我运行它时,是否在该行上出现致命错误:

致命错误:第29行的/Users/myUser/Sites/cake/app/Model/User.php中找不到“BlowfishPasswordHasher”类

这是一条线(确切地说):

$passwordHasher = new BlowfishPasswordHasher();

为什么不看到该文件?

在我的PHPStorm IDE中,当我点击它并点击它时,它会转到位于以下位置的正确文件:

/Users/myUser/Sites/cake/lib/Cake/Controller/Component/Auth/BlowfishPasswordHasher.php

其他人有此问题吗?

提前致谢

1 个答案:

答案 0 :(得分:1)

User Model

中添加以下一行
App::uses('BlowfishPasswordHasher', 'Controller/Component/Auth');
class User extends AppModel {
    ....
}
  

注意:BlowfishPasswordHasher使用比SimplePasswordHasher(sha1)更强的散列算法(bcrypt),并为每个用户提供盐。从CakePHP 3.0版起,SimplePasswordHasher将被删除