Why can't you use SSL? If you want "transmition security" that what SSL is for, isn't it?
MD5 is a one-function. It's not intended for data encryption. Also make sure you salt the MD5 too because most credit card numbers aren't really 16-18 digits. Half of those digits identify the bank and credit network. Which makes the MD5 even more vulnerable to dictionary attacks and brute forcing.
Just my two cents. 😉