The puzzlehunt has ended, thanks for playing!
Puzzlehunt 2015

Reset Puzzle State

Scroll

Scrolllllllllllllllllllll

Please note that the body of this puzzle has succumbed to linkrot, and is possibly lost forever! To my recollection, visiting the link would take you to an ascii art infinite scroller; at the top was a message along the lines of find d4e93d, however repeated scrolling seemed to get us nowhere (in fact because reaching the end would require us to go about a million pages down!).

—puzzlemaster

Solution

author: Daniel Low

The instruction cues the association with hashes.

On inspecting the source we see that the next page is given by generate.php?id=md5(<currentHash>).puzzlehunt2015

Which suggests that we should compute the hash chain until it starts with d4e93d.

This can be done by writing a short program to compute the required hash

import md5

limit = 10000000
target = "d4e93d"
m = md5.new()
m.update("puzzlehunt2015")
x = m.hexdigest()
while (limit > 0 and x[:6] != target):
  m = md5.new()
  m.update(x + ".puzzlehunt2015")
  x = m.hexdigest()
  limit -= 1
print(x)

The program should produce the correct hash: generate.php?id=d4e93d37cbcdf367d77c993b85abe792

By going to generate.php?id=d4e93d37cbcdf367d77c993b85abe792.puzzlehunt2015, we see that the solution

puzzle.takocheesecakeapplepie.hunt2015