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

Вниз

CryptoAPI (Delphi 2010, XP SP3)   Найти похожие ветки 

 
tytus ©   (2010-07-06 12:36) [0]

Добрый день мастера.
Вот решил разобраться с шифрованием файлов паролем.
с шифрованием все ок. А вот при дешифровке GetLastError выдает $00000057 - параметр задан неверно.

var
 hProv: HCRYPTPROV;
 hash: HCRYPTHASH;
 key: HCRYPTKEY;
 FOrig: File;
 Data: PByte;
 d, dw: DWORD;
begin
//Шифрование
 CryptAcquireContextW(@hProv, nil, nil, PROV_RSA_FULL,
   CRYPT_VERIFYCONTEXT);
 CryptCreateHash(hProv, CALG_SHA, 0, 0, @hash);
 CryptHashData(hash, @aPassw[1], Length(aPassw), 0);
 CryptDeriveKey(hProv, CALG_RC4, hash, 0, @key);
 FTempStream := TMemoryStream.Create;
 AssignFile(FOrig, FOrigFileName);
 Reset(FOrig, 1);
 GetMem(Data, 512);
 try
   while not EOF(FOrig) do
   begin
     BlockRead(FOrig, Data^, 512, d);
     if CryptEncrypt(Key, 0, EOF(FOrig){false}, 0, data, @d, d) = true then
       FTempStream.Write(data^, d);
   end;
 finally
   FreeMem(Data, 512);
 end;
 CloseFile(FOrig);
 FTempSTream.Seek(0, soFromBeginning);
 RE1.Lines.LoadFromStream(FTempStream);
 FTempStream.Free;

// Дешифрование
// все тоже самое, только
 if CryptDecrypt(Key, 0, EOF(FOrig), 0, data, @d) = true then
   FTempStream.WriteBuffer(data^, d);


Подскажите - как с этим бороться.


 
tytus ©   (2010-07-06 13:36) [1]

Дошло, блин..
Зашифрованые данные я выводил в MemoryStream а потом в TRichEdit, и сохранял RichEdit.Lines.SaveToFile(aFileName);

А нужно было сохранять - MemoryStream.SaveToFile(aFileName);

Теперь все нормально.

Возможно дело в отличии кодировок исходного файла и RichEdit.



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

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

Наверх




Память: 0.47 MB
Время: 0.015 c
11-1260089096
RusSun
2009-12-06 11:44
2016.07.24
[Error] scaledemo1.pas(124)


6-1279741373
ppgrachev
2010-07-21 23:42
2016.07.24
idtcpserver как разослать сообщение всем клиентам


15-1442179801
Юрий
2015-09-14 00:30
2016.07.24
С днем рождения ! 14 сентября 2015 понедельник


15-1447968605
Юрий
2015-11-20 00:30
2016.07.24
С днем рождения ! 20 ноября 2015 пятница


15-1447832032
Dimka Maslov
2015-11-18 10:33
2016.07.24
Вот интересно