Solo un dato, hoy en día lo peor que puedes es usar MD5 para generar el HASH (OJO, MD5 NO ENCRIPTA) ya que existen diccionarios con los hash generados por MD5, así que a menos que la contraseña sea muy compleja esta será fácil saber la contraseña real, lo mejor es usar
crypt() y blowfish...