Oh. Also. What you're doing here is "finding a second pre-image" which is slightly different from finding a collision. A second pre-image is where you already have a message and a hash and you want to find a second message that hashes to the same thing. Technically speaking, a collision is just finding two messages that hash to the same thing, but you don't necessarily get to pick what the two messages are.
I mention it not to be an academic snob, but because when you read the literature, there are plenty of examples where you sort of have to know the two things are distinct, at least to the academics.
Thanks for pointing that out. It's definitely important to understand the difference, and not just academically. It helps us understand that the consequences of MD5 being broken have only been proven to work for collision attacks, and not preimage attacks. (But I still don't think using MD5 when you can use more secure alternatives is a good idea.)
I mention it not to be an academic snob, but because when you read the literature, there are plenty of examples where you sort of have to know the two things are distinct, at least to the academics.