Nos estás preguntando cuál es la mejor manera de dispararte en el pie. Como dice Peter Harmann , no hay absolutamente ninguna razón legítima para recuperar la contraseña descifrando y enviando correos electrónicos. Si puedes descifrar las contraseñas, un atacante podría hacer lo mismo. ¡Todo el punto del hashing de contraseña es evitar eso! Además, el correo electrónico no es un medio muy seguro, por lo que no es una buena práctica desperdiciar las bandejas de entrada de las personas con contraseñas.
Entonces, ¿qué hacer en su lugar? La forma tradicional de recuperar la contraseña es enviar por correo electrónico un enlace para restablecer la contraseña al usuario. El enlace contiene un token largo, seguro y aleatorio, conectado al usuario. Este token permite a la persona que hace clic en el enlace cambiar la contraseña una vez. Tenga en cuenta que el token debe caducar dentro de un tiempo razonable. Si desea obtener más información, Troy Hunt tiene un buen artículo en él.
Mientras lo hace, hay algunas cosas importantes que debe hacer para mejorar el hashing de su contraseña:
- Lo más importante, y este es un acuerdo importante, no use una sola ronda de SHA-256. Esto no es lo suficientemente bueno. Necesitas usar un algoritmo lento, como bcrypt o similar. Consulte esta pregunta .
- Es mejor usar un salt al azar que usar el nombre de usuario. Esto no es tan importante como el punto anterior, pero sigue siendo una buena práctica.