2011-04-05 21 views

Respuesta

11

Devise por defecto utiliza el algoritmo Bcrypt, que yo sepa no se desencriptar-able. Si necesita poder descifrar las contraseñas, debe usar un algoritmo diferente como AES.

Hay una gem que se extiende apoyo AES para Devise.

Nota: He respondido a esta pregunta en un interés puramente académico. Se le recomendaría que continúe usando BCrypt. Lo aliento a que tome precauciones severas, ya que administrar las contraseñas es un asunto arriesgado.

+7

Uno debería, simplemente, y enfatizó muy ligeramente nunca, nunca - repito, ¡nunca descifre la contraseña de un usuario! Al igual que no descifrar la información de la tarjeta de crédito de los usuarios. Simplemente proporcione un método para ellos, ellos mismos para restablecerlo. – Ekampp

+0

@Ekampp bien cuando se necesita la contraseña para interactuar con un servicio externo como IMAP, entonces usted tendrá un problema sin descifrado. Por supuesto, la solución podría estar usando la autenticación de oath2 con certificados, pero eso agrega mucha sobrecarga. A veces, la autenticación AES tiene sentido. – Donato

0

Creo que esas contraseñas son encriptadas de una manera: puede tomar una contraseña provista por el usuario, encriptarla y compararla con la encriptada en la base de datos (si coincide - intento exitoso). Pero no es posible descifrar el que está en la base de datos, de modo que nadie pueda sacar todas las contraseñas. Es una característica de seguridad.

+0

¿Cómo se hace eso? – AnApprentice

+0

¿Qué hace exactamente? – Zepplock

0
class User < ActiveRecord::Base 

    devise :database_authenticatable... 

    def verify_password?(password) 
    encryptor_class = Devise::Encryptors.const_get(Devise.encryptor.to_s.classify) 
    encryptor_digest = encryptor_class.digest(password, Devise.stretches, self.password_salt, Devise.pepper) 
    encryptor_digest == self.encrypted_password 
    end 
end 
2

Devise utiliza BCrypt. Debe modificar el campo de contraseña cifrada en la tabla USERS y colocar una nueva contraseña encriptada.

se puede generar una nueva contraseña cifrada en esta página web: http://www.bcrypt-generator.com/

Cuestiones relacionadas