Registriert seit: 29. Mai 2002
37.621 Beiträge
Delphi 2006 Professional
|
Re: DEC Stream Entschlüsselung schlägt fehl
5. Mär 2010, 22:50
Neue Erkenntnisse. jetzt stimmt zumindest wieder die Dateigröße:
Delphi-Quellcode:
procedure TAppendFile.ExtractEncrypted;
var
fsCarrier: TFileStream;
fsTrailer: TFileStream;
EncryptStream: TMemoryStream;
Salt: Binary;
Key: Binary;
begin
ReadFileInfo;
fsCarrier := TFileStream.Create(FCarrierFile, fmOpenRead);
try
fsCarrier.Seek(-SizeOf(TFileInfo) - FileInfo.FFileSize, soFromEnd);
fsTrailer := TFileStream.Create(DestFolder + FileInfo.FFilename, fmCreate);
try
EncryptStream := TMemoryStream.Create;
with ValidCipher(ACipherClass).Create, Context do
try
EncryptStream.CopyFrom(fsCarrier, FileInfo.FFileSize);
EncryptStream.Seek(0, soFromBeginning);
SetLength(Salt, 16);
EncryptStream.Read(Salt[1], Length(Salt));
Key := ValidHash(AHashClass).KDFx(FPassword, Salt, KeySize, TFormat_Copy, AKDFIndex);
Mode := ACipherMode;
Init(Key);
DecodeStream(EncryptStream, fsTrailer, EncryptStream.Size - Length(Salt), nil);
finally
ProtectBinary(Salt);
ProtectBinary(Key);
EncryptStream.Free;
end;
finally
fsTrailer.Free;
end;
finally
fsCarrier.Free;
end;
end;
Allerdings die Entschlüsselung ist immer noch falsch.
Michael Ein Teil meines Codes würde euch verunsichern.
|
|
Zitat
|