Como su nombre lo dice, los hash no encriptan (ver
http://es.wikipedia.org/wiki/Hash). No sé si sea la _mejor_ forma, pero no le veo ningún inconveniente. Con respecto a si el usuario olvida su contraseña, simplemente generas otra y anulas la anterior, es la forma como trabaja el Membership en asp.net 2
Saludos