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

Тема в разделе "MS Visual C++", создана пользователем Chrek625, 7 дек 2010.

Статус темы:
Закрыта.
  1. Chrek625

    Chrek625 Гость

    Доброго времени суток уважаемые форумчане.
    Использую 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]);
    но полностью поместить хешь в переменную не получается.
    Помогите пожалуйста кто чем может.
     
  2. lazybiz

    lazybiz Well-Known Member
    C\C++ Team

    Регистрация:
    3 ноя 2010
    Сообщения:
    1.344
    Симпатии:
    0
    На выходе md5 16-байтный результат. Он у тебя уже получается в переменной (а точнее в массиве) digest. Что значит перенести в переменную? Скажи что именно тебе нужно.
     
  3. Chrek625

    Chrek625 Гость

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

    lazybiz Well-Known Member
    C\C++ Team

    Регистрация:
    3 ноя 2010
    Сообщения:
    1.344
    Симпатии:
    0
    Напиши хоть как решил и в чем была проблема.
     
  5. Chrek625

    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
     
  6. lazybiz

    lazybiz Well-Known Member
    C\C++ Team

    Регистрация:
    3 ноя 2010
    Сообщения:
    1.344
    Симпатии:
    0
    так он же у тебя и был в стринговой переменной!) шило на мыло поменял!?)
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей