Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.10.12;
Скачать: CL | DM;

Вниз

MD5 и CryptoAPI   Найти похожие ветки 

 
fog   (2008-08-31 22:39) [0]


procedure TForm1.Button1Click(Sender: TObject);
var hProv: hCryptProv;
   hHash: hCryptHash;
   MS: TMemoryStream;
   sl: cardinal;
   sig: array[0..63] of Byte;
begin
CryptAcquireContext(hProv, nil, nil, PROV_RSA_FULL, 0);
CryptCreateHash(hProv, CALG_MD5, 0, 0, hHash);
MS := TMemoryStream.Create;
MS.LoadFromFile("test.exe");
CryptHashData(hHash, MS.Memory, MS.Size, 0);
CryptSignHash(hHash, AT_SIGNATURE, nil, 0, nil, sl);
CryptSignHash(hHash, AT_SIGNATURE, nil, 0, @sig[0], sl);
if hHash <> 0 then CryptDestroyHash(hHash);
if hProv <> 0 then CryptReleaseContext(hProv, 0);
if MS <> nil then MS.Free;
end;


полученный результат (sig) не совпадает с полученным сторонним MD5 калькулятором (md5calc.exe).
размер файла test.exe - > 10 M.
где ошибка?


 
Медвежонок Пятачок ©   (2008-09-01 09:06) [1]

И накой здесь CryptSignHash , если нужно всего лишь md5?


 
Медвежонок Пятачок ©   (2008-09-01 09:12) [2]

Ну и после CryptHashData нужно получить размер итогового хеша, распределить память под хеш и и затем получить само значение хеша: CryptGetHashParam


 
fog   (2008-09-01 12:08) [3]

Ошибку понял, а как быть с большими (типа образ DVD) файлами?


 
Медвежонок Пятачок ©   (2008-09-01 12:09) [4]

Точно так же.


 
Медвежонок Пятачок ©   (2008-09-01 12:10) [5]

Цикл поблочного чтения и в нем CryptHashData


 
fog   (2008-09-01 16:15) [6]

И на том спасибо



Страницы: 1 вся ветка

Текущий архив: 2008.10.12;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.019 c
15-1219304588
TRSteep
2008-08-21 11:43
2008.10.12
vbs скрипт и принтеры


2-1220279317
Terasbetoni
2008-09-01 18:28
2008.10.12
Подскажите, следует ли использовать структуру MDI


1-1200314667
opoloxai
2008-01-14 15:44
2008.10.12
DBGrid -> OnKeyDown


2-1220268091
workbench
2008-09-01 15:21
2008.10.12
Запрет закрытия консольного окна


2-1220417936
TRSteep
2008-09-03 08:58
2008.10.12
Отправка почты