# The Serpent Stronghold

You come to the door of the stronghold. You recall what the scriptures say: You must speak the right words, and the door will open. But what words? It doesn't say. You have a look at the door in front of you; something looks a little... off?

The scriptures also say that the entrance may be guarded by a particularly dangerous serpent, but you see no sign of that.
Can you find the magic words you must speak?

Author note: This has two parts. Both are close to impossible without programming knowledge. Note the computer-puzzle tag!

• Any Hint how many words is in that Commented Mar 31, 2015 at 7:02
• Two words in the solution, but you'll know they are correct :) Commented Mar 31, 2015 at 7:07
• I imagine it's not squeamish ossifrage... @squeamishossifrage
– user88
Commented Mar 31, 2015 at 8:04
• @JoeZ. We shall see... :-) Commented Mar 31, 2015 at 12:12

This was fun :-)

The magic words are:

𝖒𝖆𝖌𝖎𝖆𝖒 𝖊𝖘𝖙

I'll try to explain briefly...

The top part of this image is coloured slightly differently from the rest of the image. If you extract the blue channel from the file's RGB data and collect all the non-zero values, you end up with a series of 1630 bytes (100, 101, 102, 32, 112, 111, 115, ...etc...). When these are converted to ASCII characters, they correspond to a Python program that converts a line of text into a hash value and compares it with a precalculated result.

Using rather obfuscated code, this program accepts two words, swaps them around, concatenates them together, then calculates the MD5 hash of each letter in the resulting string. When these hashes are joined together, they should equal this long decimal number: 53860968794796194828850912663548273574565909315382218566780496065842419219289908754506217032050621610149536529412292660885510238487652964693572485330339349942747218138850926967814204619329585611322730560200765021495570268633090417978260869005139879392762230267619047776297802859921963641380013215139195873390084347386400369215393624187102530981915

To break the code, you have to convert the number back into hexadecimal and split it into 32-character chunks. These correspond to the MD5 hashes of each individual letter (MD5 ("e") = e1671797c52e15f763380b45e841ec32, MD5 ("s") = 03c7c0ace395d80182db07ae2c30f034, etc.). This yields the string 'estmagiam', which suggests that the magic words are 'magiam est'.

(Actually, there are other strings that would have worked, like 'agiam estm', but they don't seem quite as likely.)

• For anyone else interested in seeing the obfuscated code, I've put it up at pastebin.com/BcBAGhvq Commented Apr 1, 2015 at 0:03