en los carriles 3 legado, un registro de usuario tiene un encrypted_password y una password_salt.Rails ¿Diseña, cómo descifrar una contraseña?
¿Cómo en la consola, puedo obtener la contraseña de un usuario? ¿Cómo desencriptar?
en los carriles 3 legado, un registro de usuario tiene un encrypted_password y una password_salt.Rails ¿Diseña, cómo descifrar una contraseña?
¿Cómo en la consola, puedo obtener la contraseña de un usuario? ¿Cómo desencriptar?
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.
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.
¿Cómo se hace eso? – AnApprentice
¿Qué hace exactamente? – Zepplock
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
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/
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
@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