CommonCrypto больше не является частью iPhone SDK - где еще я могу легко получить функцию MD5? - PullRequest
18 голосов
/ 04 декабря 2009

Итак, как многие из вас уже могут знать, CommonCrypto больше не входит в iPhone SDK (как в версии 3.0).

Где еще я могу легко воспользоваться функцией MD5? Я собираюсь собрать OpenSSL в свой проект, чтобы получить MD5 ??

Несколько уточнений:

  • Это не для безопасности
  • Это будет использоваться с API, который требует дайджеста строки MD5. У меня нет контроля над этим API.

Если бы я мог использовать SHA256, я бы. Я за продвижение вперед, но я не могу изменить API.


Редактировать

Кажется, я ошибся. CommonCrypto - это , который все еще находится в iPhone SDK, но не просто так, как раньше. Я искал библиотеку libCrypto для включения в мой проект. Я не знал, что вы можете включить заголовки CommonCrypto, не связываясь с библиотекой ...

1 Ответ

22 голосов
/ 04 декабря 2009

Вы уверены, что это не входит? У меня есть приложения, скомпилированные на устройстве для 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]];    
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...