Ich habe das jetzt mal so gelöst. Ich bin von TStringStream weg, da es hier als Masochismus betitelt wurde.
Leider aber wieder hin zu AnsiString. Mit String bekomme ich nur Salat als Ergebnis.
Es funktioniert, aber es ist bestimmt nicht perfekt.
Delphi-Quellcode:
SetLength(s, aFileStream.Size - (32 * SizeOf(Byte)));
aFileStream.Read(s[1], Length(s));
s:= THashFunctions_Selftest.CalcHash(s);
Result := s;
Das Problem mit dem hohen Speicher bekomme ich leider nicht weg, da ich das SetLength nicht einfach weglassen kann