Registriert seit: 22. Jun 2018
2.175 Beiträge
|
AW: C# nach Delphi aber keine Ahnung wie?
16. Jun 2019, 14:46
Ach so. Wie würdest du die Keybytes denn deklarieren? Ich würde jetzt alles nach Dezimal umrechnen und daraus ein Array bauen.
Oder eben so
Delphi-Quellcode:
keyBytes: array [0 .. 31] of byte = ($2A, $5F, $CB, $17, $91, 210, $2F, $B6, 2, $45, $B3, $D8, $36, $9E, $D0, $B2, $C2, $73, $71, $56, $3F, $BF, $1F, 60, $9E, $ DF, $6B, $11, 130,
90, $5D, 10);
Ach herr je das wird mir zu kompliziert. Das mit den von Position 24 und 0x10 verstehe ich ja schon nicht weil ich den Originalcode eben nicht verstehe.
Wenn ich der Logik aber folge, dann übergebe ich dem AES-Decrypt den Stream von Position (0x38 bis (Streamlänge minus 0x38))
Ungefähr so
Delphi-Quellcode:
StreamToEncrypt.CopyFrom(FS, FS.Size - $38); // Den FileStream vom Anfang bis Ende minus $38
StreamToEncrypt.Position := $38; // An Position $38 gehen (die ersten und letzten $38 sind scheinbar unwichtig). Gibt aber einen stream-Schreibfehler als Fehlermeldung
Im Original sieht das so aus
Code:
byte[] buffer = new byte[bytes.Length - 0x38]; // ignoriere die letzten $38
Array.Copy(bytes, 0x38, buffer, 0, buffer.Length); // ignoriere auch die ersten $38 und kopiere alles von >38 und <ende-38
Aber AES verstehe ich noch viel weniger. Was da an parametern verlangt wird
So weit bin ich aber weiter geht wirklich nicht
Delphi-Quellcode:
var
ctx: TAESContext;
aesblck: TAESBlock;
i: Integer;
begin
for i := 1 to 16 do
aesblck[i - 1] := byte(Key[i]);
ctx.IV := aesblck;
AES_CBC_Init_Decr(Key, 256, aesblck, ctx); // warum 256 ?!
AES_CBC_Decrypt(xyz, xyz, Length(xyz), ctx);
Geändert von DieDolly (16. Jun 2019 um 15:21 Uhr)
|