Einzelnen Beitrag anzeigen

DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#15

AW: C# nach Delphi aber keine Ahnung wie?

  Alt 16. Jun 2019, 15:04
Entweder bin ich zu dumm dafür oder Delphi kann das nichtm (was ich nicht glaube).
Delphi-Quellcode:
 AES_CBC_Init_Decr(keyBytes, 128, aesblck, ctx);
 SetLength(Res, 4096); // irgendeine große Nummer weil ich keine Ahnung habe wie groß das Ergebnis sein soll?
 AES_CBC_Decrypt(@EncryptedData[1], @Res[1], length(EncryptedData), ctx);
Ergebnis in einen TBytesStream schreiben, der dann von TZDecompressionStream auf die Festplatte geschrieben werden soll
Delphi-Quellcode:
 BytesStream := TBytesStream.Create;
 try
  BytesStream.Write(Res, Length(Res));

  ZLibStream := TZDecompressionStream.Create(BytesStream);
  try
   OutputStream := TFileStream.Create('dec.txt', fmCreate);
   try
    OutputStream.CopyFrom(ZLibStream, 0);
   finally
    OutputStream.Free;
   end;
  finally
   ZLibStream.Free;
  end;
 finally
  BytesStream.Free;
 end;
Die Ausgabe ist immer leer. Ich habe vorher Res auf die Platte schreiben lassen ohne irgendetwas zu dekomprimieren. Da ist auch tatsächlich was drin. Sieht im Prinzip genau so aus wie die Eingangsdaten. Das muss dann noch dekomprimiert werden woran ich scheitere leider.

Das hier ist mein letzter Versuch. Die zweite showmessage erzeugt schon einen data error. Jetzt gebe ich wohl oder übel auf.
Delphi-Quellcode:
 BytesStream := TBytesStream.Create(Res);
 try
  ShowMessage(BytesStream.Size.ToString);

  ZLibStream := TZDecompressionStream.Create(BytesStream);
  try
   ShowMessage(ZLibStream.Size.ToString);

   OutputStream := TFileStream.Create('dec.txt', fmCreate);
   try
    OutputStream.CopyFrom(ZLibStream, 0);
   finally
    OutputStream.Free;
   end;
  finally
   ZLibStream.Free;
  end;
 finally
  BytesStream.Free;
 end;

Geändert von DieDolly (16. Jun 2019 um 15:47 Uhr)
  Mit Zitat antworten Zitat