Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Как преобразовать хеш строку в байты?


Автор: lexstir 26.4.2006, 01:52
есть строка MD5-хеш который я считываю из файла к примеру - 
char oldHash[] = "033BD94B1168D7E4F0D644C3C95E35BF";
как преоброзовать ее в байты 03h 3Bh и т.д. чтобы сверить с другим хешем?
то есть мне надо получить массив байтов из этой строки в шестнадцатеричной системе

unsigned char oldHash[] = {0x03,0x3B,0xD9,0x4B,0x11,0x68,0xD7,0xE4,0xF0,0xD6,0x44,0xC3,0xC9,0x5E,0x35,0xBF};

 

Автор: MAKCim 26.4.2006, 07:28
Код

unsigned char convert(char obj)
{
    unsigned char value=obj-48;
    if (obj>57) value-=7;
    return value;
}

void hex(vector<unsigned char>& oldHash, char* Hash)
{
    while (*Hash)
    {
        unsigned char a=convert(*Hash),
            b=convert(*(Hash+1));
        oldHash.push_back(16*a+b);
        Hash+=2;
    }
}
 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)