Why store it encrypted, if you also store it in plain text??
If they read what you post (man in the middle), they can post that string too, and then it does not matter if it's encrypted in the db, as they know your password in plain text.
If they however "root" your database, they can then check out what the password is, if its not encrypted.
If you then have a "unencrypted pass" field, they can read it.
Most "dumb" users use the same password "everywhere", so here is one issue!
If bob45 uses the password "secret" or maybe it's even the name of his dog, "bobby" and someone roots your db..
They then read bob45's password in plain text.
Then they can google bob45's username and login to his accounts everywhere.
I think that's the main reason to use encrypted passwords in the db, as it does not protect the transferral as much as it protects a leakage.
I think you also bear a responsobility for further abuse of a password, as most users will use the same password on multiple sites.
Rather make a password reset system, where he gets an email with a link. This link will have a unique id which can generate a random password and then email it to the users email account.
For further protection, you could demand that they have some kind of security question. However, I think its safe to say that if they can access the users email account, they can do "what they want".
my 2 cents...
Olav Alexander Mjelde
Admin & Webmaster