пароль зашифрован дважды на md5 в yii

Я разрабатываю приложение в системе Yii. Я создаю регистрационную форму, где есть поле, которое является паролем. После регистрации я увидел, что результат пароля, хранящийся в db, зашифровывается дважды из md5.

Я написал в модели как:

protected function afterValidate() { $this->password = $this->encrypt($this->password); } public function encrypt($value) { return md5($value); } 

контроллер

 public function actionRegistration() { $model=new User('registration'); // Uncomment the following line if AJAX validation is needed $this->performAjaxValidation($model); $model->scenario = 'registerwcaptcha'; if(isset($_POST['User']) ) { $model->attributes=$_POST['User']; $keystring = md5( rand(0,1000) ); // Generate random 32 character hash and assign it to a local variable. $model->keystring = $keystring; //$model->password = md5( $model->password ); if($model->validate()) { // and here is the actual HACKY part $model->scenario = NULL; // save user registration if($model->save()) $this->redirect(array('emailverify')); } } $this->render('registration',array( 'model'=>$model, )); } 

Может ли кто-нибудь помочь мне, пожалуйста.

В последней версии Yii встроена хеширование паролей.

Для хэша вы можете использовать:

$hash = CPasswordHelper::hashPassword($password);

и проверить:

 if (CPasswordHelper::verifyPassword($password, $hash)){ // password matches with hash } else{ // password doesn't match with hash } 

Более подробную информацию можно найти на этой странице:

http://www.yiiframework.com/doc/api/1.1/CPasswordHelper/