Guarda, la cosa è semplice.

MD5 funziona a senso unico, ovvero da una stringa crei il codice, ma dal codice non crei niente.

Potresti lasciare la user in chiaro, in genere si fa così, e la password invece la salvi in md5 (potresti anche aggiungere una stringa segreta alla password per renderla ancora più sicura).

Quando viene effettuato il login fai una select in base alla sola user, poi confronti l'md5 della password (+ eventuale secret) inserita con l'md5 che hai ricavato nel db.

In questo modo non ti puoi sbagliare, unico inconveniente è che se un utente si perde la password non la recupera, ma ormai ho visto che è pratica comune in caso di smarrimento rimandare una nuova password provvisoria nella casella che si lascia nel db.