Hola de nuevo , makh16 te ha explicado brevemente como deberias de encriptar tu contraseña en la base de datos .
1 - en el registro se encripta y se guarda en la bd ya encriptada
2- en el login verificamos el valor de post clave con el mismo algoritmo de encriptacion usado en el registro y verificamos que sea igual al de la bd
yo no te recomiendo md5 por que ya esta muy explotado , aqui te dejo algunos ejemplo de encriptacion del manual de php
http://php.net/manual/es/function.hash.php - function hash
http://es.php.net/manual/es/function.crypt.php - function crypt
http://es.php.net/manual/es/function.mcrypt-encrypt.php - function mcrypt-encrypt
pero no uses md5 usa alguno mas fuerte.
las sessiones las puedes codificar con base64_encode y decodificar con base64_decode por ejemplo
mcrypt tiene una libreria de funciones muy buenas para encriptar desencriptar datos te lo recomiendo para encriptar las sessiones , ademas este mismo metodo yo lo usaria para codificar toda la bd y que ningun dato importante como nombres emails etc... queden en texto plano protegiendo asi a tus usuarios .
http://es.php.net/manual/es/book.mcrypt.php - MCRYPT
tambien te recomiendo cambiar el algoritmo usado para el id de session por ejemplo sha-512 o whirlpool
http://es.php.net/manual/es/session.....hash-function
debes modificarlo en tiempo de ejecucion
ini_set('session.hash_function','whirlpool');
saludos cualquier duda aqui estamos