🏚️

Halfway House

Week 26

It's week 26 - you're at the halfway house of all 52 yearly challenges, though this "house" is more of an escape room. You discover an old computer in front of a locked door - to your surprise, after plugging it in, it slowly flickers on and presents you with a terminal - there is simply an option to send messages and view older messages

When experimenting, you notice the phrase "abc" gives you different outputs, as though they have created their own internal encryption/encoding - 5 are shown below:

8)"@!B ':&<>% -4.44/ "?>$:) :'-5@#

Simply typing "z" gives results such as:

O+ S' ;? 9A H2

Likewise, "Program Fifty Two" gives you outputs such as these

((!QK$61,F=$,A ##:/=)2BJ/ +)I.'H !/4>)F;,;7+6C* %!G")=*JM, )+Q&87 ."1A%J&A8:7*)D !%(A!E0D<= /%C4C, )'@2=2/85==$C* ###F#C5?9@ +)6AA. &*G+D+B%K'=$94 !%:/42"R+N &.8?K$

Or "hello world":

17,9J"(D"M L++D/CF&40 *>50'EG%5: I.A.1A4831 A'*;(D1;)F "U$K(J(D#A F"*;K!<0K$ V!4;'KG%C! 26"CH$'E5: 4C69&LK!(<

There are some old messages on the terminal timestamped as being from 1986 such as this one below labelled "passphrase" - can you decode it and hence presumably unlock the door to escape?

Hints

Hints will be released at the start of each of the following days - e.g. the start of day 3 is 48 hours after the challenge starts

Release Day Hint
2 What do you notice about the length of the input vs outputs for each message?
3 You will hopefully notice the outputs are twice as long for any non-space character
4 Try writing out the ASCII codes of the first few encrypted messages - then compare them to the input letters. Do you notice anything?
5 Hint: you can try processing the characters in pairs - i.e. the first 2 output characters correspond to the first input character, the next 2 output characters correspond to the second input character etc - spaces aren't encrypted, so a single space in the output message corresponds to a single space in the input as you can see from the examples
6 You might have noticed if you add each pair of output characters, you get each input character - e.g. the first example is '8' and ')' - they have the ASCII codes 56 and 41 respectively. If we simply add them, we get 97, which is the ASCII code for 'a'
7 There are various ways to solve this - you could split the inputs on spaces, loop through all the words as the outer loop, loop through and process the character pairs in the inner loop - or you could do it with a single loop: increment 2 by default in each loop, process the character pairs if the first is a letter, while if it's a space, add the space to the output string and increment the loop index by an extra 1
26 2026