Как вернуть хеш md5 в строке в этом коде C ++?

У меня есть этот код, который правильно показывает мне md5 строки. Я предпочитаю возвращать строку в функцию, но у меня проблемы с преобразованием значений md5 в мою строку. {{ 1}} Это код:

string calculatemd5(string msg)
{
string result;
const char* test = msg.c_str();
int i;

MD5_CTX md5;

MD5_Init (&md5);
MD5_Update (&md5, (const unsigned char *) test, msg.length());
unsigned char buffer_md5[16];
MD5_Final ( buffer_md5, &md5);
printf("Input: %s", test);
printf("\nMD5: ");
for (i=0;i<16;i++){
    printf ("%02x", buffer_md5[i]);
    result[i]=buffer_md5[i];
}
std::cout <<"\nResult:"<< result[i]<<endl;
return result;
}

Например, result [i] - это странный символ ascii вроде этого: . Как можно решить эту проблему?

5
задан Kerrek SB 24 November 2011 в 13:10
поделиться