MD5 is a Message Digest algorithm, not encryption. It doesn't support use of a key.
The simplest way to understand the difference between a message digest and encryption is that encryption is invertible: it allows recovery of the complete original message (the plaintext or cleartext), when decryption is performed with a suitable key. By contrast, message digest algorithms are designed to be non-invertible: the contents of the original message cannot be recovered by any computation performed on the output (the hash value).
To encrypt or hash an NSString, using a suitable algorithm and key, look at the NSString methods that return NSData objects. A returned NSData is a series of bytes in a particular text encoding. The text encoding is passed as a parameter to the method that returns the NSData.
If you put the sourcecode in your application, do the correct #import.
You should be able to call
NSString *md5string = [whateverStringToBeEncrypted md5];
Then your new md5string pointer will contain the md5 encrypted version of whateverStringToBeEncrypted.
Please do mind, there are several different MD5 encryptions, in this case 16 & 32 bit..
They are both in there, just comment the right one out (currently configured for 32 bit).