Now dont use this information... illegitemately...
EDIT: Links to cracking sites are strictly prohibited, shame, shame!
I was talked to about this, and I will explain.
You need to understand that MD5 is NOT secure. It is not a method I would suggest using to protect any sort of sensitive information as it is very easily bruteforced.
There are a lot of ways to encrypt data, and almost all of them are more secure than MD5. Granted, security is only as good as the users, so keeping keys PRIVATE is important, for obvious reasons.
On the topic of decrypting the MD5 information, short of bruteforcing it or having the key, no, you cannot do it.
If you have the key, then you would just work backwards. If you are bruteforcing it, well... then you have to question if you should see what you are trying to get at.
Personally, I prefer the Rijndael system.
Read up about it here:
MSDN2 Information About Rijndael
I would scoure that cryptography namespace to find the security implementation that fits though. Perhaps your particular situation needs a private/public key set, or having just a private key works fine.
As far as I know, Rijndael cannot be bruteforced (in any reasonable amount of time) and short of knowing the key, anyone trying to get at your information will be waiting years (Whereas with MD5, it could be minutes to hours). Back to security though, the main flaw is... the... user...
Keep that in mind when you code for security / encryption.