Ich verstehe nicht warum ihr euch das mit untypisierten Zeigern überhaupt antut. Warum nicht einfach ein
TBytesStream
, dessen
Bytes
nehmen und fertig?
PS:
Bytes
noch auf die entsprechende Länge einkürzen
PPS: Oder direkt einfach mit einem Byte-Array, ganz ohne Stream:
Delphi-Quellcode:
uses System.IoUtils;
procedure TForm1.Button1Click(Sender: TObject);
Var
LSHA1: THashSHA1;
payload: TBytes;
begin
if OpenDialog1.Execute() then
begin
payload := TFile.ReadAllBytes(OpenDialog1.FileName);
LSHA1 := THashSHA1.Create();
LSHA1.Update(payload);
Edit1.Text := LSHA1.HashAsString();
end;
end;