# Password reencriptado?

**URL:** <https://www.ruby-forum.com/t/password-reencriptado/111866>\
**Category:** Rails\
**Created:** [August 12, 2007, 5:50pm UTC](https://www.ruby-forum.com/t/password-reencriptado/111866 "2007-08-12T17:50:22Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![achiola](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/958977/32.png) [@achiola](https://www.ruby-forum.com/u/achiola)\
**Post date:** [August 12, 2007, 5:50pm UTC](https://www.ruby-forum.com/t/password-reencriptado/111866/1 "2007-08-12T17:50:22Z")

</div>

Hola a todos.  
Primero que nada quiero que sepan q’estoy dando mis primeros pasas en  
rails?(mas que pasos estoy gateando)…  
… bueno, les cuento donde me he frenado…  
Estoy creando una pequeÃ±a aplicacion para que yo (y algunos amigos)  
podamos catalogar nuestras peliculas, musica, etc (es como un videoclub)  
todo ok. pero tengo el siguiente problema:

como veras el password en la db se guarda encriptado, el problema se  
presenta cuando existe algun problema, como por ejemplo ya existe el  
usuario, la app , tira un error no me deja continua y en ese momento el  
password ya apacere encriptado, cuando corrijo los datos y le vuelvo a  
dar ok entonces me reencripta el password!!!

como puedo solucionar este problema?

Les paso todo el codigo.

he creado un form para crear usuasrio es muy simple. como este:

* * *

### Registro
 \<%= error\_messages\_for 'user' -%\> \<%= start\_form\_tag({:action =\> 'signup'}) -%\> Desired Login: \<%= text\_field :user, :login -%\>

Password:  
\<%= password\_field :user, :password -%\>

Your Email:  
\<%= text\_field :user, :email -%\>

Confirm Email:  
\<%= text\_field :user, :email\_confirmation -%\>

\<%= submit\_tag ‘Crear Cuenta’ -%\>

## \<%= end\_form\_tag %\>

## mi controlador (user) tiene estos metodos:

def signup  
case request.method  
when :post  
@user = User.new(params[:user])  
if @user.save  
redirect\_to :controller =\> ‘film’, :action =\> ‘list’  
end  
end  
end

def login  
if session[:user] = User.authenticate(params[:user][:login],  
params[:user][:password])  
redirect\_to :controller =\> ‘film’, :action =\> ‘list’  
else  
redirect\_to :controller =\> ‘film’, :action =\> ‘list’  
end  
end

def logout  
reset\_session  
redirect\_to :controller =\> ‘film’, :action =\> ‘list’  
end

* * *

## y el modelo user esta definido como asi:

def password=(value)  
write\_attribute(“password”, Digest::SHA1.hexdigest(value))  
end

## def self.authenticate(login, password) find(:first, :conditions =\> [“login = ? and password = ?”, login, Digest::SHA1.hexdigest(password)]) end
