#delphi #openssl #aes
#delphi #openssl #aes
Вопрос:
Я использую следующий код. F2, F3 — TMemoryStream, но except улавливает исключение StreamReadError
var F2, F3: TMemoryStream;
begin
F2 := TMemoryStream.Create();
F3 := TMemoryStream.Create();
F2.LoadFromFile(File);
EncUtil := TEncUtil.Create;
try
EncUtil.UseBase64 := True;
EncUtil.Passphrase := 'пароль';
EncUtil.Cipher := 'AES-256';
EncUtil.Encrypt(F2, F3);
except on E : Exception do
ShowMessage(E.ClassName ' поднята ошибка, с сообщением : ' E.Message);
end;
// More code
end;
Что может быть не так?
Комментарии:
1. Пожалуйста, покажите, как вы определяете
F2
иF3
.2.
var F2, F3: TMemoryStream; ...... F2:=TMemoryStream.Create(); F2.LoadFromFile(File); F3:=TMemoryStream.Create();
3. Вы забыли сбросить позицию после загрузки. Но зачем использовать поток памяти, если вы хотите зашифровать файл?
4. Вы также можете просто использовать
F2: TStream
иF2 := TFileStream.Create(aFile, fmOpenRead or fmShareDenyWrite)