|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Win32 API | Криптография : Какая-то засада с MD5 хэшем |
|
Win32 API | Криптография : Какая-то засада с MD5 хэшем
|
Старый параноик Сообщения: 2423 |
Профиль | Отправить PM | Цитировать Вот текст:
HCRYPTPROV hCryptProv; HCRYPTKEY hKey; HCRYPTHASH hHash; //-------------------------------------------------------------------- // Get a handle to the default provider. if(!CryptAcquireContext(&hCryptProv, NULL, MS_ENHANCED_PROV, PROV_RSA_FULL, 0)) MyHandleError("Error during CryptAcquireContext!"); //-------------------------------------------------------------------- // Create a hash object. if(!CryptCreateHash(hCryptProv, CALG_MD5, 0, 0, &hHash)) MyHandleError("Error during CryptCreateHash!"); //Теперь внимание! BYTE Data[20] = { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0 }; DWORD wDataLen = 20; CryptGetHashParam(hHash, HP_HASHSIZE, 0, &wDataLen, 0); printf("size: %d\n", wDataLen); |
|
Отправлено: 00:12, 23-11-2006 |
Старый параноик Сообщения: 2423
|
Профиль | Отправить PM | Цитировать Ага, тут понял. в чём дело. 4 - это размер. А само значение получается 16, всё правильно.
Следующая проблема. Как вручную задать точное значение хэша? проблема тут вот в чё: если делать так: UINT mkey[4]; mkey[0] = (UINT)0x....; mkey[1] = (UINT)0x....; mkey[2] = (UINT)0x....; mkey[3] = (UINT)0x....; if (!CryptHashData(hHash, (BYTE*)mkey, 16, 0)) MyHandleError("Error during CryptHashData!"); а если так, UINT mkey[4]; mkey[0] = (UINT)0x....; mkey[1] = (UINT)0x....; mkey[2] = (UINT)0x....; mkey[3] = (UINT)0x....; if (!CryptSetHashParam(hHash, HP_HASHVAL, (BYTE*)mkey, 0)) MyHandleError("Error during CryptSetHashParam!"); if(!CryptDeriveKey(hCryptProv, CALG_RC4, hHash, 0x00800000 | CRYPT_NO_SALT, &hKey)) MyHandleError("Error during CryptDeriveKey!"); Что делать? |
Отправлено: 01:32, 23-11-2006 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старый параноик Сообщения: 2423
|
Профиль | Отправить PM | Цитировать Прочитал, что хэш, созданный через HP_HASHVAL надо подписывать.
Но не получается, бред-какой-то... Ыыы... |
Отправлено: 11:47, 23-11-2006 | #3 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Win32 API | Hint в StatusBar | Ryjka | Программирование и базы данных | 2 | 30-07-2006 22:17 | |
Win32 API | Нужна помошь по API функциям! | vasika_hk | Программирование и базы данных | 2 | 23-05-2006 09:51 | |
Win32 API | Дозвон | XCodeR | Программирование и базы данных | 5 | 08-04-2006 12:26 | |
Win32 API | Игры с DeferWindowPos | pva | Программирование и базы данных | 2 | 22-03-2005 10:29 | |
Win32 API | Неизвестные функции | Savant | Программирование и базы данных | 9 | 02-03-2005 10:18 |
|