This post was inspired by Seed Labs.

What are we going to do?

The purpose of this lab is to create two different programs with different operations, but with the same MD5 hash. To do this, we will use a property derived from construction of this function. It makes it so that if we have colliding blocks(or set of blocks) B and B' then as long as we keep earlier and later blocks unchanged the sum also will not change.