Yii2密码散列

Yii2密码散列,yii2,yii2-advanced-app,yii2-user,Yii2,Yii2 Advanced App,Yii2 User,我想知道密码哈希是如何生成的 // This is my code: $email="mail@example.net"; $password="mypassword"; // How to get password_hash variable? $user = User::find()->where(['email'=>$email, 'password_hash'=>$password_hash])->one(); if(isset($user)){ ec

我想知道密码哈希是如何生成的

// This is my code:

$email="mail@example.net";
$password="mypassword";

// How to get password_hash variable?

$user = User::find()->where(['email'=>$email, 'password_hash'=>$password_hash])->one();
if(isset($user)){
   echo "there is";
} else {
 "Sorry!";  
}

谢谢。

我在md5中使用哈希,但我在用户模型中创建函数

    public function validatePassword($password)
{
    return $this->PASSWORD === md5($password);
}

我在md5中使用哈希,但我在用户模型中创建函数

    public function validatePassword($password)
{
    return $this->PASSWORD === md5($password);
}

是如何在Yii 2中处理密码的。除非您是密码专家,否则不要尝试编写自己的密码。

是Yii 2中处理密码的方式。除非您是密码专家,否则不要尝试自己编写。

md5非常不安全。我要么使用PHP新的内置密码\u散列函数,要么使用yii\base\Security::generatePasswordHash;如果$用户{//错误的电子邮件}其他人如果!Yii::$app->security->validatePassword$password,$user->password\u hash{//Invalid password}否则{//Ok}…请告诉我你不再这样做了。使用内置的加密方法。MD5会让你妥协。简单的MD4/SHA1哈希不再是一种安全的加密形式。md5非常不安全。我要么使用PHP新的内置密码\u散列函数,要么使用yii\base\Security::generatePasswordHash;如果$用户{//错误的电子邮件}其他人如果!Yii::$app->security->validatePassword$password,$user->password\u hash{//Invalid password}否则{//Ok}…请告诉我你不再这样做了。使用内置的加密方法。MD5会让你妥协。简单的MD4/SHA1散列不再是一种安全的加密形式;这种习惯在sql注入中是不安全的。我们应该找到模型,然后调用validatePassword函数来验证用户模型。参考Pheagey的答案。用户::查找->其中['email'=>$email,'password\u hash'=>$password\u hash]->一个;这种习惯在sql注入中是不安全的。我们应该找到模型,然后调用validatePassword函数来验证用户模型。参考Pheagey的答案。^-MD5是一个糟糕的选择。^-MD5是一个糟糕的选择。