TLDR, si puede recuperar una contraseña para un usuario, su sistema de autenticación está dañado e inseguro.
PHP tiene métodos de administración de contraseña incorporados. Casi definitivamente deberías estar usándolos. Este no es el lugar para reinventar la rueda porque la criptografía es difícil.
La contraseña de un usuario debe ser salada y cifrada antes de ser almacenada en la base de datos. Luego, al comparar la contraseña en el intento de inicio de sesión del usuario, ejecuta la contraseña intentada a través del mismo algoritmo de hash, usando la misma sal y luego verifica su base de datos para ver si el hash de contraseña resultante coincide con el de la base de datos.
- ¿Cuál es la mejor contraseña del mundo?
- Cómo activar Norton Security Suite
- ¿Cuáles son algunos buenos temas universitarios para hacer tesis en ciberseguridad? ¿Puedo implementar el aprendizaje automático en seguridad cibernética?
- Seguridad de TI: ¿Qué certificación es mejor CompTIA Security + o CCISP?
- ¿Qué sitios web ofrecen cursos gratuitos de piratería ética?
El hash es un algoritmo unidireccional, lo que significa que no puede tomar un hash y revertirlo para averiguar cuál era el valor original. Dado que una implementación adecuada solo almacenaría un hash de contraseña en una base de datos, es imposible recuperar la contraseña original.
El enfoque correcto es permitir a un usuario RESTABLECER su contraseña en lugar de recuperarla. Luego, el hash para la nueva contraseña reemplazaría la anterior en su tabla de usuarios.