Well, md5 is not an encryption algorithm, it's a hashing algorithm -- as such, it's one-way. Classically, it's used for authentication -- the user's password is stored in hashed form and any user password is also hashed by the same algorithm. Then you can compare the stored password with the user-provided one without being able to know what the password actually is.
I've been dealing with e-commerce systems for a while now, and I've never needed the customers complete CC number. As most, I've needed the last four digits.
Why must you store customer credit-card numbers in their entirety?
It's possible to keep CC numbers secure when their stored. Amazon, for example, keeps the CC numbers on file to make checkout easier. But they have a three-tier system: database server, application server, web server. Only the application server can access the data -- the web server can only access the application server. That way, a hacker has to go through three machines to get at the data.
Then you place all kinds of extremely paranoid intrusion-detection systems on the links between the tiers. Anything untoward happens, and that link is killed.
Then there are additional safeguards on top of that.
Do you have the capability to provide that level of network-level security?
Want the best answers? Ask the best questions: TANSTAAFL!!