Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.166 Beiträge
 
Delphi 12 Athens
 
#10

Re: MD5 Länge einfügen als 64 Bit?

  Alt 1. Mär 2009, 11:43
Wie sieht es denn bei dir inzwischen aus? (deine Code-Übersetzung)

hatte es selbst grad mal versucht und dachte erst " des rechnet doch falsch", verglichen mit einem der PHP-MD5-Generatoren im INet ...

Doch hatte ganz vergessen, daß Windows nicht Big-Endian ist, sondern Little-Endian und man daher das Ergebnis umdrehn muß, da die MD5-Strings in Big-Endian ausgegeben werden.
IntToHex, sowie Format+%x machen es zumindestens so ... man könnte aber auch BinToHex nutzen, dieses arbeitet "andersrum".

(mein Funktions-Rumpf und die Umwandlung von h0-h1-h2-h3 nach String, damit du dich in Ruhe auf die Berechnung konzentrieren kannst und nicht daran scheiterst, nur weil es falsch dargestellt wird)
Delphi-Quellcode:
Function MD5(message: AnsiString): AnsiString;
  Begin
    ...

    //var int digest := h0 append h1 append h2 append h3 //(Darstellung als little-endian)
    Result := Format('$%.2x%.2x%.2x%.2x %.2x%.2x%.2x%.2x %.2x%.2x%.2x%.2x %.2x%.2x%.2x%.2x',
      [h0 shr 0 and $ff, h0 shr 8 and $ff, h0 shr 16 and $ff, h0 shr 24 and $ff,
       h1 shr 0 and $ff, h1 shr 8 and $ff, h1 shr 16 and $ff, h1 shr 24 and $ff,
       h2 shr 0 and $ff, h2 shr 8 and $ff, h2 shr 16 and $ff, h2 shr 24 and $ff,
       h3 shr 0 and $ff, h3 shr 8 and $ff, h3 shr 16 and $ff, h3 shr 24 and $ff]);
  End;
nicht wundern ... String = AnsiString ... aber damit man es auch unter Delphi2009 testen kann, da dieses Unicode ist.


Da du ja lernen willst, würde ich dir allerdings empfehlen es dir erst anzugucken, wenn du es selbst geschafft hast, oder du nicht weiter kommst.
Aber bei Letzerem kannst'e uns ja gern fragen ... das Beispiel in Wikipedia geht also schonmal, daran kann's nicht scheitern

[add]
Der Code entspricht weitgehenst dem Aufbau von Wiki's Code-Vorlage und enthält keinerlei Optimierungen ... Optimierteres findet man z.B. in meiner "Klasse" Hier im Forum suchenThxMD5
Angehängte Dateien
Dateityp: zip projects_169.zip (3,2 KB, 11x aufgerufen)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat