Yii логин от Sha 512 шифровать

У меня есть следующее шифрование пароля, когда пользователь регистрируется:

public function actionCreate()
{
$model=new Users;

// Uncomment the following line if AJAX validation is needed
// $this->performAjaxValidation($model);

if(isset($_POST['Users']))
{
$model->attributes=$_POST['Users'];
// how many times the string will be hashed
$rounds = 10000;
// @todo Use real salt here.
$salt = 'salt';
// pass in the password, the number of rounds, and the salt
// $5$ specifies SHA256-CRYPT, use $6$ if you really want SHA512
$model->PassWord=crypt($model->PassWord, sprintf('$6$rounds=%d$%s$',        $rounds, $salt));
if($model->save())
$this->redirect(array('view','id'=>$model->users_id));
}

$this->render('create',array(
'model'=>$model,
));
}

Теперь я знаю код, который мне нужно изменить, чтобы аутентифицировать пользователей:

else if($user->PassWord!==$this->password)

и если бы я использовал crypt метод, который я обычно использовал бы это:

else if($user->PassWord!==crypt($this->password,'salt'))

Как мне изменить скрипт входа в систему для использования sha512?

0

Решение

Вы должны использовать те же параметры, что и при хешировании пароля из create:

$rounds = 10000;
$salt = 'salt';
if($user->PassWord !== crypt($this->password, sprintf('$6$rounds=%d$%s$', $rounds, $salt)))
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]