CommonCrypto is no longer part of the iPhone SDK - Where else can I easily get an MD5 function?

冷暖自知 提交于 2019-11-30 06:48:31

问题


So as many of you may already know, CommonCrypto isn't included in the iPhone SDK anymore (as on 3.0).

Where else can I easily get hold of an MD5 function? Am I going to have to compile OpenSSL into my project just to get MD5??

A few clarifications:

  • This isn't for security
  • This is going to be used with an API that requires an MD5 digest of a string. I have no control over this API.

If I could use SHA256, I would. I'm all for moving forward, but I can't change the API.


Edit

It seems I was mistaken. CommonCrypto is still in the iPhone SDK, just not explicity as it used to be. I was looking for the libCrypto library to include in my project. I was unaware that you could include the CommonCrypto headers without linking against the library...


回答1:


Are you sure its not included? I have apps compiled on the device for 3.0 using the following code that works:

#import <CommonCrypto/CommonDigest.h>

#define CC_MD5_DIGEST_LENGTH 16   /* digest length in bytes */

- (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]];    
}


来源:https://stackoverflow.com/questions/1847281/commoncrypto-is-no-longer-part-of-the-iphone-sdk-where-else-can-i-easily-get-a

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!