Your task is pretty simple, but can be a launch pad into very interesting territory.
Send a request to the challenge endpoint. You'll receive a JSON with a single attribute - a pretty random string.
You have about 15 seconds to generate two different files - each of them including the string you just received - which when hashed with MD5 produce the same hash.
Send them back, base64-encoded, to the solution endpoint to get your reward.
Problem JSON structure is simple:
include: the common string
Your solution should be a JSON with a single key inside:
files: an array with two strings which should be the base64-encoded files that collide for MD5
On the surface of it, hash collisions are boring. When you're mapping an inifite problem space to a finite solution set, stuff has to collide, what's the big deal?
Turns out a small dive into the inner workings of the algorithms and the collision business has a few interesting twists. This is that dive. Have fun.
h^profile is here.