Шифруем слово в Md5

  • Автор темы Chrek625
  • Дата начала
Статус
Закрыто для дальнейших ответов.
C

Chrek625

Гость
#1
Доброго времени суток уважаемые форумчане.
Использую VS2010.
Пишу не большую программу в которой необходимо использовать md5 шифрование, всё что нужно нашёл всё работает, но столкнулся с проблемой поместить значение хеша в переменную.
Все библиотеки взял с проекта polarssl и там же есть не большой пример получения хеша www.polarssl.org/show_source?file=hash/hello
Там хеш в цикле выводиться на консоль, помогите как это значение перенести в переменную.


Вот код по линку кто не хочет заходить
C++:
#ifndef _CRT_SECURE_NO_DEPRECATE
#define _CRT_SECURE_NO_DEPRECATE 1
#endif

#include <stdio.h>

#include "polarssl/md5.h"

int main( void )
{
int i;
unsigned char digest[16];
char str[] = "Hello, world!";

printf( "\n MD5('%s') = ", str );

md5( (unsigned char *) str, 13, digest );

for( i = 0; i < 16; i++ )
printf( "%02x", digest[i] );

printf( "\n\n" );

#ifdef WIN32
printf( " Press Enter to exit this program.\n" );
fflush( stdout ); getchar();
#endif

return( 0 );
}
пробовал
C++:
sprintf((char*)test, "%02x", digest[i]);
но полностью поместить хешь в переменную не получается.
Помогите пожалуйста кто чем может.
 

lazybiz

Well-Known Member
03.11.2010
1 339
0
#2
На выходе md5 16-байтный результат. Он у тебя уже получается в переменной (а точнее в массиве) digest. Что значит перенести в переменную? Скажи что именно тебе нужно.
 
C

Chrek625

Гость
#5
да мне нужно было шестнадцатеричный результат сразу в переменную записать, то есть чтобы 32 символьный хэшь был в читабельном виде в переменной,
сделал просто в цикл всунул функцию append

C++:
string last_result;
unsigned char digest[16];
char test[32];

int amt = strlen(str);
md5( (unsigned char *) str, amt, digest );
for( int i = 0; i < 16; i++ ) {
sprintf((char*)test, "%02x", digest[i]);
last_result.append(test);
}
ну на выходе функции и получил значение хэша в стринговской переменной last_result
 
Статус
Закрыто для дальнейших ответов.