io non ho capito un tubo, comunque funziona così:

nel db ci stanno le pass in chiaro? allora fanno confrontate in chiaro
nel db sn hashate in md5? allora il confronto va fatto in md5

Ricorda md5 applicato a 2 parole uguali, ma con maiuscole avranno hash md5 diversi?

esempio

md5(Ciao) = md5(Ciao)
md5(ciao) != md5(Ciao)

ciao = ciao
ciao != Ciao

ora...dopo questa premessa, esprimi meglio il tuo problema e dimmi dove metti/togli l'hashing