2012-05-16 35 views
7

¿Cómo recuperamos la contraseña de un usuario?cómo recuperar la contraseña en django

u = User.objects.get(username__exact=username) 
print u.password 

pantallas sha1$f0971$441cac8f604d49869e33ca125a76253a02fef64e

¿Hay una función para encontrar la contraseña de esta cadena codificada?

+0

Necesito enviar la contraseña por correo electrónico, cuando el usuario hace clic en el enlace de contraseña olvidada. pero dado que es imposible, ¿cuál es la solución? – John

+2

Use la funcionalidad incorporada para restablecer la contraseña, es decir, cree una nueva en lugar de enviar por correo electrónico el original. –

+0

he visto muchos sitios web que ofrecen esta característica. Triste, django no proporciona una solución – John

Respuesta

17

No. Es imposible, por diseño. Pero nunca debería haber una necesidad de hacerlo de todos modos.

2

no. y no debería ser como parte de la seguridad, las contraseñas se transmiten a través de una función unidireccional antes de que se guardan, por lo que no se deleitaban si la base de datos se ve comprometida

lo que puede hacer es reemplazar la contraseña del usuario con el que usted saber. así es como funcionan las funciones de "buen nombre" del sitio: le envían una nueva contraseña aleatoria, no la anterior, ya que (no) deben tener acceso a ella

7

Debido a restricciones de seguridad, la contraseña hash método es una forma. Deberá restablecer la contraseña de esos usuarios.

Intente utilizar el método set_password(raw_password) para dar al usuario una nueva contraseña. Recuerde llamar al método save() para asegurarse de guardar el cambio en la base de datos.

u = User.objects.get(username__exact=username) 
u.set_password(raw_password) 
u.save() 
2

No, el campo contiene el hash salado de la contraseña. de la cadena sabemos que es la función SHA1. Si tiene la contraseña, podrá producir el mismo valor hash que actúa como huella. Por razones de seguridad, ahora debería haber una manera de recuperar la contraseña de una manera económica (aún puede usar fuerza bruta, pero llevará mucho tiempo).

Cuestiones relacionadas