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

),
Es gibt allerdings Algorithmen, wirklich mit Carry arbeiten (zB die Rabbit-Stromchiffre) oder einige Pseudozufallszahlen-Generatoren.