Independiente cual sea "mejor" para determinado caso .. debes conocer que de las funciones o "hash" que has mencionado .. unos son de encriptación en un sólo sentido .. como MD5 .. (no se puede desencriptar) .. y otros son en ambos sentidos .. es decir .. que se pueden desencriptar bajo una "semilla" (este sería el
www.php.net/crypt)
Ahora .. si quieres trabajar con contraseñas como se suele hacer .. se usa MD5() normalmente (podría ser otro "hash") .. almacenas tus contraseñas encriptadas y si necesitas ofrecer una función de "recordar" contraseña debes generar un nuevo password y enviarselo a tu usuario.... (y almacenar en tu BD el dato de tu password encriptado).
Un saludo,