Problem goes as this:
Assume that your algorithm divide the given string into three character blocks and XOR them. Then it takes the result pass it through existing MD5 hash algorithm. This algorithm, for instance, would give same hash values for “FOO” and “FOOFOOFOO”.
In his example, I am having trouble understanding how XORing the blocks creates the same hash values. Can anyone explain how this works?
When you XOR a value with itself you get 0 and if you XOR 0 with something you get the same something back. We get
"FOO" XOR "FOO" = "\0\0\0"and"\0\0\0" XOR "FOO" = "FOO". I leave the rest up to you. 🙂