moin Jungs,
Ich programmiere gerade ein Verschlüsselungsproggi mit Delphi und
DEC.
Encodieren kann ich schon. Benutze Rijndael mit SHA_1
so ich hab die Encodierungsroutine so aufgebaut:
Delphi-Quellcode:
function Decoding(Input,Output,PW: string; Cipher: TCipherClass; hWnd: THandle): Boolean;
var
fs,dest: TFileStream;
Len: Integer;
Buffer: Pointer;
begin
result := false;
fs := TFileStream.Create(Input, fmOpenRead);
if Assigned(fs) then
begin //<<<< Ab hier meldet Debugger den Fehler
dest := TFileStream.Create(Output, fmCreate);
if Assigned(dest) then
begin
try
fs.Seek(sizeof(TFileHeader), soFromBeginning);
DefCipherClass := Cipher;
GetMem(Buffer, 1024);
try
with DefCipherClass.Create(PW, nil) do
begin
Mode := cmCBC;
InitKey(PW, nil);
while (fs.Position < fs.Size ) do
begin
if fs.Size - fs.Position > BlockSize then
Len:= BlockSize
else
Len := fs.Size - fs.Position;
fs.ReadBuffer(Buffer^, Len);
DecodeBuffer(Buffer^, Buffer^, Len);
dest.WriteBuffer(Buffer^, Len);
end;
end;
finally
FreeMem(Buffer);
end;
finally
FreeAndNil(dest);
end;
end;
end;
end;
so aufgerufen wird diese Durch einen Button:
Delphi-Quellcode:
procedure TForm1.Button4Click(Sender: TObject);
var
FileHeader: TFileHeader;
CipherClass: TCipherClass;
HashClass: THashClass;
HashEncodedFile:
string;
begin
if FileExists(Edit1.Text)
then
begin
ReadHeader(FFilename, FileHeader);
CipherClass := FileHeader.FCipherClass;
HashClass := FileHeader.FHashClass;
HashEncodedFile := FileHeader.FHashString;
Decoding(Edit1.Text,Edit2.Text,Edit3.Text, CipherClass,
Handle);
end
else
ShowMessage('
Fehler');
end;
So der FileHeader ist genauso wie bei Luckie's FileCrypter.
die function ReadHeader sieht so aus:
Delphi-Quellcode:
function ReadHeader(Filename: string; FileHeader: TFileHeader): Boolean;
var
fs: TFileStream;
begin
result := false;
fs := TFileStream.Create(Filename, fmOpenRead);
if Assigned(fs) then
begin
try
fs.Read(FileHeader, sizeof(TFileHeader));
finally
FreeAndNil(fs);
end;
end
else
begin
ShowMessage('Fehler');
exit;
end;
result := true;
end;
wenn ich jetzt ausführe kommt genau diese Meldung beim encodieren:
"Zugriffsverletzung bei Adresse 00403433 im Modul 'Project1.exe'. Lesen von Adresse 0110005F"
bitte um hilfe
danke im voraus.
cu
Predator