Alternative to storing CCs is to do reference transactions if
your payment gateway supports these types of transactions. This
would be where you do a authorization only on the card for a very
small amount. If the return is successful, subsequent charges to
the credit card can be done just using the authorization and/or
transaction #, usually up to the expiration of the CC on the
original charge. Alot of vendors, even ones that do subscription
based services are moving to this model. And at some point I would
say the industry will require this. PayFlowPro supports this.
Other than that I would recommend Triple DES since this would
be 2 way encryption, then use some sort of salting to make it a bit
harder to decrypt if someone gets the raw data. Something like
encrypt CC+secret key, then encrypted value+secret key 2,
encrypt+order total. Keep the 2 keys in different locations.
Keep the keys, salting scheme and data in different, minimize
the access level to the bare minimum. Also don't keep code and the
encrypted data on the same server, and they should if possible be
firewalled off from each other with minimum access.