Einzelnen Beitrag anzeigen

Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4

Re: DEC Stream Entschlüsselung schlägt fehl

  Alt 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.
  Mit Zitat antworten Zitat