Xcode C ++ MD5 хеш

Я хотел бы хэшировать простую строку, используя MD5 в Xcode C ++. Я много искал, но не смог найти учебник. Мне пришлось #import <CommonCrypto/CommonDigest.h>, Это все? Как я могу позвонить в MD5 после этого?
Я нашел этот код, но он дает мне ошибку. Как я получу мое хэшированное значение, будет ли оно обновлено в строковой переменной?

 unsigned char digest[16];
const char* string = "Hello World";
struct MD5Context context;     **(error: variable has incomplete type
MD5Init(&context);
MD5Update(&context, string, strlen(string));
MD5Final(digest, &context);

Я просто использую простое приложение командной строки без заголовков внутри только основного main.cpp.
Я действительно ценю любую помощь !!!!

-1

Решение

Вы используете неправильный API. Я не уверен, откуда вы их взяли (они похожи на вызовы OpenSSL), но это должно выглядеть так:

#include <stdio.h>
#include <string.h>

#include <CommonCrypto/CommonDigest.h>

int main()
{
unsigned char digest[CC_MD5_DIGEST_LENGTH];
const char string[] = "Hello World";

CC_MD5_CTX context;
CC_MD5_Init(&context);
CC_MD5_Update(&context, string, (CC_LONG)strlen(string));
CC_MD5_Final(digest, &context);

for (size_t i=0; i<CC_MD5_DIGEST_LENGTH; ++i)
printf("%.2x", digest[i]);
fputc('\n', stdout);
return 0;
}

Выход

b10a8db164e0754105b7a99be72e3fe5

Утвержденный Вот.

1

Другие решения

Существует одноразовая версия:

#include <CommonCrypto/CommonDigest.h>

unsigned char digest[16];
const char* string = "Hello World";

CC_MD5(string, (CC_LONG)strlen(string), digest);

Вам нужно будет включить Security.framework (или взять в аренду соответствующий библиотечный файл).

1

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector