Como usar md5 no campo password

Olá galera! Sou novato na área e tenho a seguinte dúvida. Como faço para encriptar o campo password em md5 dentro do Model, pois o yii cria um arrai com as variáveis do post, mas salva os sem encriptar os dados.

Valeu!

Weslei,

Olha esse link:http://www.yiiframework.com/forum/index.php/topic/3133-registration-forms-little-tips/

A princípio o tratamento é feito no model, na função Rules.

Só não sei como tratar o campo password com md5 no model.

Wesley,

Usa a combinação de sha1() + chave secreta. Assim você evita de alguem saber qual a senha é.

Digo isso, por que somente md5() qualquer um consegue descobrir a senha usando o google, pegando a combinação do md5(), existem inumeros sites que tem uma porrada de lista md5().

Isto vale também para sha1().

Ou então você colocar uma verificação do nivel da senha, assim melhora a combinação da senha em md5() ou sha1() evitando que a seguência de caracteres seja descobrida.

Olá galera! Fuçando um pouco mais e vendo alguns forums, consegui alterar o valor do password antes do insert no banco. Segue abaixo o procedimento:

1 - No arquivo model coloque a seguinte função:

Função para converter em md5 a variavel password

public function beforeSave()

{

  $pass = md5(md5($this->password).Yii::app()->params["salt"]);  


  $this->password = $pass; 


  return true; 

}

2 - Agora no arquivo "Controller", altere o código da função "actionCreate" para seguinte forma:

  • Creates a new model.

    • If creation is successful, the browser will be redirected to the ‘view’ page.

    */

    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'];
    
    
     	if($model->beforeSave()){
    
    
                          if($model->save())
    
    
     		$this->redirect(array('view','id'=>$model->id));
    
    
                     }
    
    
     }
    
    
    
    
    
     $this->render('create',array(
    
    
     	'model'=>$model,
    
    
     ));
    

    }

Com isso resolvemos o problema com os passwords. Levando em conta que na função que gera o md5, nós temos a geração de um md5 a partir de outro.

Obrigado a todos que me ajudaram!