Cakephp3身份验证密码未加密

Cakephp3身份验证密码未加密,php,authentication,cakephp,cakephp-3.0,Php,Authentication,Cakephp,Cakephp 3.0,我正在使用cakephp3和auth组件进行登录/注销。 我的[users]表,users.[password]列不是加密的,只是普通字符。 有没有一种方法不使用或覆盖auth passwordHasher 在/src/Model/Entity文件夹中创建一个名为User.php的文件,其中包含以下内容。这将在保存时自动加密您的密码。 use Cake\Auth\DefaultPasswordHasher; use Cake\ORM\Entity; class User extends En

我正在使用cakephp3和auth组件进行登录/注销。 我的[users]表,users.[password]列不是加密的,只是普通字符。
有没有一种方法不使用或覆盖auth passwordHasher

/src/Model/Entity
文件夹中创建一个名为
User.php
的文件,其中包含以下内容。这将在保存时自动加密您的密码。
use Cake\Auth\DefaultPasswordHasher; 
use Cake\ORM\Entity;

class User extends Entity
{


    protected function _setPassword($value)
    {
        if (strlen($value)) {
            $hasher = new DefaultPasswordHasher();

            return $hasher->hash($value);
        }
    }
}

/src/Model/Entity
文件夹中创建一个名为
User.php
的文件,其中包含以下内容。这将在保存时自动加密您的密码。
use Cake\Auth\DefaultPasswordHasher; 
use Cake\ORM\Entity;

class User extends Entity
{


    protected function _setPassword($value)
    {
        if (strlen($value)) {
            $hasher = new DefaultPasswordHasher();

            return $hasher->hash($value);
        }
    }
}

您还可以在控制器中散列密码,如下所示。 在控制器中使用密码哈希库

use Cake\Auth\DefaultPasswordHasher;
现在,您可以使用下面的代码像这样散列您的密码字符串

$password = "Your Password";
$hasher = new DefaultPasswordHasher();
$hasher->hash($password);

您还可以在控制器中散列密码,如下所示。 在控制器中使用密码哈希库

use Cake\Auth\DefaultPasswordHasher;
现在,您可以使用下面的代码像这样散列您的密码字符串

$password = "Your Password";
$hasher = new DefaultPasswordHasher();
$hasher->hash($password);
注册时使用此

$user = $this->Users->newEntity();
$hasher = new new DefaultPasswordHasher();
$user = $this->Users->patchEntity($user, $this->request->getData());
$user->password=$hasher->hash($user->password); //follow this
if ($this->Users->save($user)) {
}
注册时使用此

$user = $this->Users->newEntity();
$hasher = new new DefaultPasswordHasher();
$user = $this->Users->patchEntity($user, $this->request->getData());
$user->password=$hasher->hash($user->password); //follow this
if ($this->Users->save($user)) {
}

如果您的数据没有散列,那么您已经没有使用密码散列(这通常是一个非常糟糕的主意)!?“未加密”是什么意思?存储的是什么?您尝试了什么来启用这种加密?如果您的数据没有散列,那么您已经没有使用密码散列(这通常是一个非常糟糕的主意)!?“未加密”是什么意思?存储的是什么?您尝试了什么来启用这种加密?@NicoHaase您可以在保存数据之前将其放入。表示在控制器中编写了保存数据的代码。@nichaase您可以在保存数据之前放置此代码。指在控制器中,您已在其中编写用于保存数据的代码。