storing the password as a plain MD5 is not really ideal.
If someone got the data then they could easily subject them to a rainbow table attack.
A better approach is to have a random string - say 16 chars long in the record. This string is not a secret (it can be stored as-is) but it should be different for each user.
then what you hash is the
secret & password & secret
this means that if 2 users have the same password, they end up with different hash values. and it's next to impossible for a hacker to have a pre-computer, rainbow table, for each of the salt values.
BTW - SHA would be a better hash than MD5. SHA256 would be even better (but is not available on XP, so your _server_ couldn't not run on XP if you used SHA256)
also MD5 is a "hash" - not an encryption. So it's not possible to store the hash of the email address or invoice number. Because if you stored those hashed they could not be "decrypted" or used.
Cheers
Bruce