Einzelnen Beitrag anzeigen

Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#7

AW: Integerüberlauf bei MD5-Berechnung

  Alt 11. Okt 2011, 20:15
Auch UInt64 wird bestimmt den Überlauf nicht verhindern.
Blödsinn! Gib' mal zwei 32 Bit-Integer an, deren Summe größer als 64 Bit ist. (Selbst bei Produkten ist das nicht möglich!)
Der Algorithmus ist nunmal so ausgelegt, das Überläufe entstehen und sogar beabsichigt sind
Noch mehr Blödsinn. Zeig' doch mal, wo im MD5-Algorithmus ein Carry oder Überlauf verwendet wird (selber ),
Gemeint ist vermutlich, dass du mit deiner Lösung quasi einen 32bit-Überlauf simulierst.

Das ist der normale Delphi-Wahnsinn. Es ist normal, dass ein Überlauf statt findet.
Ich finde es vernünftig, wenn Delphi die Überlaufprüfung standardmäßig aktiviert hat.
Wer kryptografische- oder Kompressionsroutinen schreibt, muss sich eh darüber Gedanken machen, in den anderen Fällen erkennt es ja wirklich einen Fehler.

Ein andere (viel langsamere) wäre: alles mit UInt64 rechnen mod 2^32. Das ist nämlich genau die Arithmetik die, gefordert ist.
mod 2^32 ließe sich in dem Fall auch mit and $FFFFFFFF ausführen. Dann sollte die Geschwindigkeit nicht ganz so stark leiden.
Intellekt ist das Verstehen von Wissen. Verstehen ist der wahre Pfad zu Einsicht. Einsicht ist der Schlüssel zu allem.
  Mit Zitat antworten Zitat