tags:

views:

31

answers:

1

I am trying to do a simple encryption of a string and am getting an error. My code is:

    #import <CommonCrypto/CommonDigest.h>

#define CC_MD5_DIGEST_LENGTH 16 

 - (NSString *)md5:(NSString *)str { 
        const char *cStr = [str UTF8String];
        unsigned char result[CC_MD5_DIGEST_LENGTH]; 
        CC_MD5(cStr, strlen(cStr), result); 
        return [NSString stringWithFormat: @"%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X",                     
                result[0], result[1], result[2], result[3],
                result[4], result[5], result[6], result[7],
                result[8], result[9], result[10], result[11],
                result[12], result[13], result[14], result[15]];        
    }


    NSString *test = md5(@"testing");

Unfortunately, I am getting an error saying "md5 undeclared" for the beginning of that function. Shouldnt it be defined in the library that I imported above?

A: 

Try:

NSString *test = [self md5:@"testing"];

Edit:

To test it, either move your call below the implementation in your view controller .m file or put

-(NSString *)md5:(NSString *)str;

in your view controller .h file.

Eric
I get an error saying that the view controller may not respond to -md5. I also tried to do it by going 'NSString *test = nil' and then [test md5:@"testing"] but then it says that md5 may not respond to NSString which makes no sense to me. Doesnt the function call for a string?
Rob
The [test md5:@"testing"] doesn't work as the compiler is correctly telling you that there is no md5: method on an NSString object (which is what test is). The md5: method exists in whatever class you have the md5: method in.
Eric