Ok, now these kinds of challenges are not really good. The reason is that without any extra property, they are trivial. Here is why:<p>Let's assume you have a cyphertext c, of length l (ie |c| = l). Now I take a plaintext p of length also l (|p| = l). Let the key k be c xor p. Now<p><pre><code> c xor k = c xor (c xor p) = (c xor c) xor p = 0^l xor p = p
</code></pre>
Where 0^l is a string of l zeros. So yeah, given one cyphertext, I can craft a pair of key and plaintext such that there is a cypher (simple xor) that, given the cyphertext and the key, outputs the plaintext.<p>What is worse? I can craft |E|^l of such plaintexts (where |E| is the size of the alphabet).<p>So yeah: this test only checks if people know basic cryptography and boolean algebra. Which tends not to be a very good test[1,2]<p>[1] <a href="http://techcrunch.com/2011/05/07/why-the-new-guy-cant-code/" rel="nofollow">http://techcrunch.com/2011/05/07/why-the-new-guy-cant-code/</a><p>[2] <a href="http://devinterviews.pen.io/" rel="nofollow">http://devinterviews.pen.io/</a>