Encriptacion de password

edited octubre 2008 in Principiantes
Hola gente, estoy teniendo un problema con la encriptacion de contraseñas; lo que deseo hacer es que al crear un usuario encriptando su password, de la siguiente manera:

En el StandardForm Usuarios:
function before_insert(){
$passwd = $this->request('passwd');
$passwd = md5($passwd);
$this->Usuarios->passwd = $passwd;
}

Y en el login:
if($this->Usuarios->find_first("login = '$nombre_usuario' and passwd = md5('$password')")){
...
}

El problema esta en que cuando creo el usuario no codifica correctamente la contraseña ingresada; es mas, para distintos usuarios y distintos passwd, codifica de la misma manera, ejemplo: al usuario admin con passwd lala, fijandome en la base de datos su passwd es c059df4171a96cf96f5364dcb8dde0f3 y para un usuario invitado con passwd invitado, la contraseña encriptada en la base es c059df4171a96cf96f5364dcb8dde0f3, exactamente la misma que admin.. Ya probe filtrar la contraseña ingresada con truncate, por si tenia algun espacio o caracter nulo, pero sigue haciendo lo mismo.. Espero puedan ayudarme y desde ya muchas gracias!

Comentarios

  • edited 2:31
    no lei todo, pero ya me imagino cual es tu problema

    este codigo lo usas en un formulario estandar
    function before_insert(){
    $passwd = $this->request('passwd');
    $passwd = md5($passwd);
    $this->Usuarios->passwd = $passwd;
    }
    

    lo que pasa a cada campo debes anteponer el prefix fl_, lo puedes ver en el html de la pagina web generada, es decir, debes cambiar este codigo por este para q incripte bien
    function before_insert(){
    $passwd = $this->request('fl_passwd');
    $passwd = md5($passwd);
    $this->Usuarios->passwd = $passwd;
    }
    


    suerte!!
  • edited 2:31
    Muchisimas gracias FiDeLio, anduvo perfecto.. Saludos!
Sign In or Register to comment.