18.05.2007 18:04:09Пример на Delphi Ответов: 1
Влад
Здравствуйте.
Пробую переделать первый пример из статьи "Delphi и Windows API для защиты секретов" - Шифрование с использованием паролей. Там используется криптопровайдер Microsoft, а я хочу использовать КриптоПро 3.0.
Зашифровываю строку "TEST TEST TEST TEST", потом расшифровываю: "╤ус├5FЩ╖T TEST TEST".
Наверно не правильно указываю константы.
Подскажите, пожалуйста.
procedure TPasswordForm.OkBitBtnClick(Sender: TObject);
var hash: HCRYPTHASH;
err: string;
begin
if not CryptCreateHash(MainForm.hProv, 32798, 0, 0, @hash) then
begin
...
MessageDlg('Error of CryptCreateHash: '+err, mtError, [mbOK], 0);
exit;
end;
if not CryptHashData(hash, @PasswEdit.text[1], length(PasswEdit.text), 0) then
begin
...
MessageDlg('Error of CryptHashData: '+err, mtError, [mbOK], 0);
exit;
end;
if not CryptDeriveKey(MainForm.hProv, 26142, hash, 0, @MainForm.key) then
begin
...
MessageDlg('Error of CryptHashData: '+err, mtError, [mbOK], 0);
exit;
end;
if not CryptDestroyHash(hash) then
begin
...
MessageDlg('Error of CryptDestroyHash: '+err, mtError, [mbOK], 0);
exit;
end;
if MainForm.encrypt then MainForm.EncryptData
else MainForm.DecryptData;
Close;
end;


 
Ответы:
21.05.2007 9:20:35Kirill Sobolev
http://www.cryptopro.ru/cryptopro/forum/view.asp?q=1664