A short story of a Developer Challenge

Yesterday I came across https://www.konnekt.com/Challenge/Developer and I decided to give it a go

konnekt

Firebug was used to check for hidden elements and the pesky display:none;  was removed

firebug

… and the following text appeared

Capture

So there must be a GetKey function probably javascript and it was found

getkey

There are 5 rows and 32 columns. Make use of a [5,15][3, 8]S algorithm with mode ECB. Oh, and you will need a key, try GetKey with a certain binary parameter!

What is ECB? Electronic Code book and learned that it has to do with encryption.

Who would name an algorithm [5,15][3, 8]S ? Aha that must be some coordinates

Untitled

So [5,15][3, 8]S stands for DES. Then “There are 5 rows and 32 columns. Make use of a DES algorithm with mode ECB. Oh, and you will need a key, try GetKey with a certain binary parameter!”

Next is the key. It was staring at me in front of the elephant {01000111 01101111}

  1. function bin2txt(bin) {
  2. var res = bin.replace(/ /g,"").replace(/[01]{8}/g, function(v) {
  3. return String.fromCharCode( parseInt(v,2) );
  4. });
  5. return res;
  6. }

funnily enough when you convert this to string it becomes “Go” to complete Ready Set Go.

But when passed as a parameter to Getkey the word “origami” pops out

Other methods of finding the key in GetKey function the list

  1. var asciiToUse = [111, 114, 105, 103, 97, 109, 105]

is the ascii of  “origami” in order

Since my knowledge of DES is next to none, I thought I must convert it to hex and was trying all sorts of website encrypter/decrypters At some point I also thought that “origami elephant” is the key in hex 🙂

Then I found http://des.online-domain-tools.com/tool-form-submit/

I pasted the encrypted text and entered origami as key

result

The result was: https://www.konnekt.com/Challenge/Developer/58fb1b4f9ac643cfa5fbsbb7def6eb29

win

Other curious things

https://www.konnekt.com/Blog/News/52/Developer-Challenge

Give it a try. We’re warning you, it’s {01100100 01100001 01101101 01101110 00100000 01100101 01100001 01110011 01111001}.
bintotext the binary results in “damn easy”

Tools used

JSFIDDLE http://jsfiddle.net/fairmutex/fGHeG/1/

http://des.online-domain-tools.com/tool-form-submit/

 

GetKey description

This function checks if the binary represents the string “Go” in unrelated ways like using  Math.sqrt(5041) which is 71 which is the ascii of “G” and  110.91935  and ceil  to get 111 which is the ascii of “o” and then lists the string “origami” if the string criteria is satisfied.

Thanks for reading