Claaro! pues lo que tu planteas es lo siguiente:
Si alguien hace un snifereo de paquetes, o algo similar y agarra el password mientras es enviado del cliente al servidor.
Si nuestra situacion es: El cliente envia el password "pepe" sin encriptar y luego le aplicamos en Server Side con ASP el MD5; el atacante puede robar el pass y en la pagina de login escribir "pepe" y entra.
Si nuestra situacion es: El cliente envia el password encriptado "926e27eecdbc7a18858b3798ba99bddd" en MD5 mediante JavaScript Client Side; el atacante puede robar el password encriptado y entrar en la pagina de login, desactivar JavaScript en el navegador y pegar el password encriptado, que no recibira otro MD5... por lo tanto entra.
Creo que la idea de guardar los passwords encriptados en la base de datos es para que NADIE pueda averiguar cual era el password real (ya que no se puede desencriptar lo encriptado con MD5, es ONE WAY ENCRIPTION)... y cuando digo nadie me refiero a Administradores de la aplicacion o atacantes que puedan acceder a nuesta base de datos.
Entonces asi se logra proteger un poco la informacion sensible de nuestros clientes. Vale la pena recordar que hay muchos usuarios que utilizan el mismo user y password en varios sitios web, pudiendo ser esto una amenaza. (ni hablar de los que utilizan el tipico 123456 jaja, yo utilizo numeros y letras sin sentido aparente para evitar ataques de diccionario tambien)
Ahora... si lo que quieres es seguridad utiliza HTTPS (la ese es de seguridad, o algo asi jaja) y utiliza certificados firmados digitalmente (que tienen un costo). Asi obtienes encriptacion de 128 bits (por lo que tengo entendido)
Es complicado el tema de la seguridad... yo creo que si estas haciendo una pagina sencilla no hace falta tanto... ahora si es un banco bueno... casi que tienes que ser un experto en la materia jaja
Espero no equivocarme con lo que dije, si es asi, por favor corrijanme, asi yo tambien aprendo