• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

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

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

Chrek625

Доброго времени суток уважаемые форумчане.
Использую VS2010.
Пишу не большую программу в которой необходимо использовать md5 шифрование, всё что нужно нашёл всё работает, но столкнулся с проблемой поместить значение хеша в переменную.
Все библиотеки взял с проекта polarssl и там же есть не большой пример получения хеша
Там хеш в цикле выводиться на консоль, помогите как это значение перенести в переменную.


Вот код по линку кто не хочет заходить
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]);
но полностью поместить хешь в переменную не получается.
Помогите пожалуйста кто чем может.
 
L

lazybiz

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

Chrek625

Забыл отписаться, Проблему решил.
 
L

lazybiz

Напиши хоть как решил и в чем была проблема.
 
C

Chrek625

да мне нужно было шестнадцатеричный результат сразу в переменную записать, то есть чтобы 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
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!