Non è che in uno dei due c'è qualche spazio? prova a fare trim() su entrambi i valori e vedi come va.
Edit: mi era sfuggito l'md5 sulla pass che invi tramite form... quindi questo non può contenere spazi, altrimenti ti darebbe un risultato diverso da quello del db... prova con quest'ultimo, magari quando l'hai inserito l'hai modificato da qualche parte senza rendertene conto.