Cakephp3身份验证密码未加密
我正在使用cakephp3和auth组件进行登录/注销。 我的[users]表,users.[password]列不是加密的,只是普通字符。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
有没有一种方法不使用或覆盖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您可以在保存数据之前放置此代码。指在控制器中,您已在其中编写用于保存数据的代码。