Forum: Programmieren allgemein
by gammatester,
16. Jan 2018
Wie schon gesagt: Sicherheitshalber solltest Du SHA3_512UpdateXL benutzen.
Forum: Programmieren allgemein
by gammatester,
16. Jan 2018
Aber sicher soll es das. Die meisten direkten Rückmeldungen und Optimierunsvorschläge erhalte ich übrigens für VP21, Delphi3 und TP6(!) Vielleicht auch bedingt dadurch, daß die Funktionen praktisch für alle Kompiler nutzbar sind.
Der oben angesprochene Fehler ist mM ein Resultat der undurchsichtigen Kompiler-Magie: wenn man nicht verschleiern würde das TBytes kein Array sondern ein Pointer auf...
Forum: Programmieren allgemein
by gammatester,
16. Jan 2018
Ich sehe nicht wie das mit BP7 oder VP21 kompatibel sein soll. Außerdem habe ich keine Lust und Zeit, für alle möglichen Eingabetypen separate Funktionen zu schreiben. Im übrigen ist die Form Init/Update/Final mit Pointern ziemlich verbreitet bei Hash-Implementationen (wahrscheinlich durch C beeinflußt).
Forum: Programmieren allgemein
by gammatester,
16. Jan 2018
Wie auch immer: Falls nicht gewährleistet ist, daß Bytes weniger als 64 K groß ist, sollten das Hashen mit SHA3_512UpdateXL durchgeführt werden.
Mit length(Bytes) erhalte ich übrigens auch ein anderes Ergebnis für meinen Teststring.
Forum: Programmieren allgemein
by gammatester,
16. Jan 2018
Du bist ein Opfer der Compiler-Magie gewerden. Nach der Deklaration Bytes : TBytes; ist Bytes (natürlich?) ein Pointer und mit @bytes berechnest Du nicht den Hash von Bytes sondern den Hash des Pointers (und der ändert sich in der Regel, weil ja die Speicheraddresse sich je nach Allokation ändert).
Mit der korrigierten Version
program t_dp_ex;
uses
system.hash, system.sysutils,
...