ResultAsString := THash_MD5.CalcBinary(Password, TFormat_HEX);
Berechnet mit MD5 über den String in Password einen Hash und wandelt diesen Binären Datenwert in einen HEXadezimal formatierten String um. Statt TFormat_HEX kannst du auch
- TFormat_COPY -> ResultAsString ist dann der reale binäre Digest des hash
- TFormat_MIME64 -> ResultAsString ist dann ein INet MIME Base64 formatierter String
- TFormat_UU, TFormat_XX -> UNIX UU/XX Format
- TFormat_PGP, ein nach MIME Base 64 formartierter String der eine prohibitäre 24 Bit Prüfsumme hintendran gehangen bekommt, also sie wie beim PGP
- TFormat_ESCAPE, Escaped String
Schau in
Unit DECFmt.pas für die verschiedenen Textformate nach.
Im
DEC gibts den Datentyp -> Binary = type LongString. Das ist nichts anderes wie ein String allerdings soll der Name "Binary" darauf hinweisen das in diesem LongString auch nicht darstellbare Zeichen gespeichert sein können. Zb. der Nullterminator #0. Wandelt man so einen String in einen PChar um (zwecks
API Aufruf) dann würde der Nullterminator dazu beitragen das man mit abgescnittenen Daten arbeitet. Um das zu signalisieren eben der Binary Datentyp. Man hätte auch ein dynamisches Bytearray benutzen können,das ist richtig. Aber dieser Datentyp ist nich kompatibel zu den Strings. Der Binary Datentyp vereinfacht also vieles, aber der Programmierer hat auch aufzupassen wie er mit dem Binary umgeht. Benutzt du reine Delphi String Operatonen treten keine Fehler damit auf.
Gruß Hagen