Einzelnen Beitrag anzeigen

Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#2

Re: Passwort mit MD5 o. Ä. hashen?

  Alt 25. Jul 2007, 16:16
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
  Mit Zitat antworten Zitat