Budeš si muset napsat vlastní implementaci MD5. V ní budeš mít dvě speciality:
1) Podpora pro postupné dopočítávání dalších bloků. Tak jsou všechny implementace interně napsané, ty to jen potřebuješ dostat ven, aby to volající program mohl použít. Dá se předpokládat, že tohle už spousta implementací "má v sobě" i s tím publikováním. Například DCPCrypt to umí.
2) Podpora pro uložení a obnovení vnitřního stavu MD5. To jsem si dost jistý, že si budeš muset napsat sám. Je to trivialita, mělo by ti stačit uložit 128 bitů někam do paměti a později zase načíst zpět, ale normální implementace to nepublikují, protože pro to nemají důvod.
Postup pak bude triviální: Postupně načítat hash ze všech bloků kromě posledního. Uložit stav. Smyčka: Zkusit poslední blok a porovnat hash. Pokud sedí, konec. Pokud nesedí, obnovit stav a zkusit další poslední blok.
Mezi námi, pokud si to nedokážeš napsat sám za odpoledne, tak to považuji za dost idiotský způsob, jak ušetřit pár korun. Ale kdo chce kam...