Hackit’2012, solucionario. Level 1.

Para no perder las buenas costumbres y de paso aprender algo más por el camino, tengo la intención de ir comentando las soluciones a 6 de los niveles del HackIt 2012 que se celebró en la Euskal Encounter en Julio. El organizador del concurso, marcan, ha publicado en su web todas las pruebas, para que podamos salsear con ellas.

El nivel 1 es muy sencillo. Si nos fijamos en el código fuente de la página, veremos:

<script type="text/javascript">// <![CDATA[
function check() {var p=$('#password').val();var o=[42,96,21,102,18,85,48,68,48,89,55,80,3,119,22,100,16,117,17];if(p.length!=(o.length-1)){return false;}for(i=0;i<(o.length-1);i++){if(p.charCodeAt(i)!=(o[i+1]^o[i])){return false;}}return true;}
$(document).ready(function(){$('#password').keyup(function(e){$('#password').css({'background-color':(check()?'#8f8':'#f88')});});
});
// ]]></script>

Así pues, el código busca el password tecleado en el formulario y compara su longitud con la del array o (-1). Si son iguales, comienza una comparación letra a letra del password tecleado con el array o. En concreto, busca que la posición i del password sea igual a o[i+1]^o[i] (el operador ^ es un XOR). Esto lo podemos calcular fácilmente haciendo uso de la consola del navegador (en Chrome: pulsamos Shift+Ctrl+J):

3 comentarios en «Hackit’2012, solucionario. Level 1.»

  1. Mira que con este primer nivel que lo pasé bastante rápido llegué a creer que podría pasar hasta el cuarto… pero apareció el segundo nivel del hackit y me quedé roto. Conseguí averiguar la longitud con la que no salía el error «err:len», pero ahí me quedé. 🙁 Después, debido a mi frustración me dediqué a pegar tiros al Battlefield 3 😀

  2. @Ikarus: la idea de publicar las soluciones es que la gente aprenda y se anime a participar otros años. … pase niveles y publique su solución. Es muy frustrante estar horas en el HackIt sin encontrar la solución, pero lo es aún más pasarse días o incluso meses trabajando sobre un problema, no encontrar la solución y tener que abandonarlo sin entender la razón, porque nadie quiere publicar cómo lo solucionó. Por otra parte, entiendo que a los autores de ciertos niveles avanzados les gustará que la gente vea su enorme trabajo y comente los pros/contras, etc.

    Gracias por comentar el post!

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.