CommonCrypto不再是iPhone SDK的一部分 - 我还能在哪里轻松获得MD5功能?

Jas*_*ien 18 iphone md5

因此,正如你们许多人可能已经知道的那样,CommonCrypto不再包含在iPhone SDK中(如3.0).

我还能在哪里轻松掌握MD5功能?我是否必须将OpenSSL编译到我的项目中才能获得MD5?

一些澄清:

  • 这不是为了安全
  • 这将与需要MD5摘要字符串的API一起使用.我无法控制这个API.

如果我可以使用SHA256,我会的.我全力以赴,但我不能改变API.


编辑

看来我错了.CommonCrypto 仍然在iPhone SDK,因为它使用的是只是没有明确地.我一直在寻找libCrypto库来包含在我的项目中.我不知道您可以包含CommonCrypto标头而不链接库...

con*_*are 22

你确定它不包括在内吗?我使用以下代码在设备上编译3.0版:

#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]];    
}
Run Code Online (Sandbox Code Playgroud)

  • 我打赌你创建的字符串没有被正确保留. (2认同)