Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Аватара для hasherfrog

Старый параноик


Сообщения: 2423
Благодарности: 85

Профиль | Отправить 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!");
, то потом этот хэш не всовывается в CryptDeriveKeyЖ
Код: Выделить весь код
	if(!CryptDeriveKey(hCryptProv, CALG_RC4, hHash, 0x00800000 | CRYPT_NO_SALT, &hKey))
		MyHandleError("Error during CryptDeriveKey!");
даёт ошибку "плохой хэш".

Что делать?

Отправлено: 01:32, 23-11-2006 | #2