La autentificación se trata de que almacenes en tus BBDD o donde almacenes tu contraseña encriptada en MD5() .. al hacer tu "login" tu usuario .. codificas lo que tu usuario ingresa como "contraseña" otra vez en MD5() y lo comparas con lo que tienes en tu BBDD o donde almacenes tu contraseña.
Un "MD5()" es un "Hash" que siempre será igual para la misma cadena dada .. He de ahí por qué se sigue ese procedimiento para autentificaciones.
Si tu usuario necesita recordar su contraseña .. en estos casos ya que el "hash" generado MD5 es irreversible, tendrías que generar una nueva contraseña .. enviarsela o mostrarla a tu usuario y codificarla en MD5() para almacenarla en tu BBDD nuevamente. (Luego puedes invitar a tu usuario a que la modifique a su gusto con el mismo proceso ...)
Puedes ver un script completo que usa ese método y técnica en:
Autentificator
http://php.cluster-web.com/autentificator
Un saludo,