md5 es un algortimo de encriptacion de una sola direccion es decir encripta y ya no hay marcha atras no se puede desencriptar.
por lo que si al generar la contraseña la encriptas con md5 es obio que al pedirle la contraseña al usuario en el login tambien encriptes lo que mada el usuario y asi poder hacer la comparacion correctamente, ejemplo:
al registrar haces
Código PHP:
$pass=md5($_POST['campo_que_viene_de_formulario']);
en el login haces
Código PHP:
$consulta="select * from usuarios where nombre='".$_POST['usuario']."' and clave='".md5($_POST['viene_de_form'])."'";
te recomiendo que uses sha1 ya que md5 es muy facil de adivinar con force brute y mas con diccionarios
incluso para fortalecer mas, puedes usar la funcion hash_algos() que te devuelve los algoritmos de encriptacion soportados por tu php y asi por ejemplo puedes encriptar usando la funcion hash:
Código PHP:
$encriptado=hash("haval256",$dato_a_encriptar);
asi como sanitizar tus datos de entrada, puede que te ataquen con un code injection ya sea de sql como de php,html
usa las funciones
$limpio=mysql_real_escape_string(strip_tags($_POST['campo_x']));
*****
-------------------------------------------------
*****